aws / aws/sagemaker-python-sdk

TensorBoard get_url feature not creating proper redirect link to SageMaker Studio

未关闭
#5,252 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
component: pysdk-team type: bug
主要语言
Python
星标
2.3k
派生
1.3k
平均合并
1 天 22 小时
30 天内合并 PR
35

描述

# 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](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-htb-access-tb-url.html#debugger-htb-access-tb-url-presigned)):

```python
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:

```python
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

贡献指南

打开贡献指南

调研方向

从 sagemaker.interactive_apps.tensorboard.TensorBoardApp.get_app_url 开始,追踪在 create_presigned_domain_url=True 时 optional_create_presigned_url_kwargs 如何提供 LandingUri。复现所提供的示例,并验证生成的 URL 是否会在 SageMaker Studio 中直接打开 TensorBoard 应用,而不是显示空白页面。

由索引模型根据 Issue 内容生成。

评估

技术栈
aws, python
领域
cloud, machine-learning
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
停滞
描述清晰度
描述清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。