Skip to content

TensorBoard get_url feature not creating proper redirect link to SageMaker Studio #5252

@tbuatois

Description

@tbuatois

TensorBoard get_url feature not creating proper redirect link to SageMaker Studio

Describe the bug

The get_app_url method in the TensorBoard application class (sagemaker.interactive_apps.tensorboard.TensorBoardApp) does not create proper redirect links when used with create_presigned_domain_url=True. Currently, the generated URL redirects to a SageMaker Studio blank page instead of opening the TensorBoard application directly. This makes it difficult to access TensorBoard visualizations from outside the Studio environment.

To reproduce

The issue can be reproduced with the following code (extract from the documentation):

from sagemaker.interactive_apps import tensorboard
region = "us-east-1"
app = tensorboard.TensorBoardApp(region)

print(
    app.get_app_url(
        create_presigned_domain_url=True,           # Required to be set to True for creating a presigned URL
        domain_id="your-domain-id",                 # Replace with your actual domain ID
        user_profile_name="your-user-profile",      # Replace with your actual user profile name
        open_in_default_web_browser=False,          # Set to False to print the URL to terminal
    )
)

When executing this code, the generated URL opens a blank SageMaker Studio page instead of directly opening the TensorBoard application.

Expected behavior

The generated URL should directly open the TensorBoard application in SageMaker Studio. The LandingUri parameter in optional_create_presigned_url_kwargs should correctly route the user to the TensorBoard application with the proper URI format.

The correct behavior would be for the URL to open directly to the TensorBoard interface, bypassing the need for manual navigation within Studio.

How to make it work

After investigating this issue, I found that the correct format for the LandingUri parameter needs to be specified differently to properly redirect to TensorBoard. Here's the working solution:

from sagemaker.interactive_apps import tensorboard
region = "us-east-1"
app = tensorboard.TensorBoardApp(region)

print(
    app.get_app_url(
        create_presigned_domain_url=True,           # Required to be set to True for creating a presigned URL
        domain_id="your-domain-id",                 # Replace with your actual domain ID
        user_profile_name="your-user-profile",      # Replace with your actual user profile name
        open_in_default_web_browser=False,          # Set to False to print the URL to terminal
        optional_create_presigned_url_kwargs={
                    "LandingUri": "app:TensorBoard:default/"
                }
    )
)

Screenshots or logs

When accessing the generated URL, you're taken to a blank SageMaker Studio page instead of the TensorBoard application.

Image

System information

  • SageMaker Python SDK version: 2.249.0 - latest
  • Framework name: TensorFlow
  • Framework version: N/A
  • Python version: 3.13
  • CPU or GPU: N/A
  • Custom Docker image: N/A

Additional context

The issue appears to be in how the TensorBoard application integration handles the LandingUri parameter from the underlying create_presigned_domain_url API.

A potential fix would be to update the SDK to properly handle the TensorBoard-specific URI format in the get_app_url method of the TensorBoardApp class.

The AWS documentation needs to be update or the SDK fixed

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions