

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用`get_app_url`函式做為`estimator`類方法來開啟 TensorBoard
<a name="debugger-htb-access-tb-get-app-url-estimator-method"></a>

如果您正在使用 SageMaker Python SDK 的`estimator`類別執行訓練任務，並且具有`estimator`類別的使用中物件，您也可以將[`get_app_url`函式當做`estimator`類的類別方法](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.EstimatorBase.get_app_url)存取。開啟 TensorBoard 應用程式，或透過執行`get_app_url`方法擷取未登入的 URL，如下所示。`get_app_url`類方法會從估算器擷取訓練任務名稱，並開啟具有指定任務的 TensorBoard 應用程式。

**注意**  
此功能可在 SageMaker Python SDK v2.184.0 及更新版本中使用。若要使用此功能，請務必透過`pip install sagemaker --upgrade`執行升級 SDK。

**Topics**
+ [選項 1：適用於 SageMaker Studio Classic](#debugger-htb-access-tb-get-app-url-estimator-method-studio)
+ [選項 2：適用於非 Studio Classic 環境](#debugger-htb-access-tb-get-app-url-estimator-method-non-studio)

## 選項 1：適用於 SageMaker Studio Classic
<a name="debugger-htb-access-tb-get-app-url-estimator-method-studio"></a>

**開啟 TensorBoard 應用程式** 

下列程式碼會將從`get_app_url()`方法傳回的未登入 URL，以環境預設的網頁瀏覽器自動開啟 TensorBoard 應用程式。

```
estimator.get_app_url(
    app_type=SupportedInteractiveAppTypes.TENSORBOARD # Required.
)
```

**擷取未登入的 URL 並手動開啟 TensorBoard 應用程式**

下列程式碼會列印未登入的 URL，您可以複製到網頁瀏覽器並開啟 TensorBoard 應用程式。

```
print(
    estimator.get_app_url(
        app_type=SupportedInteractiveAppTypes.TENSORBOARD, # Required.
        open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal.
    )
)
```

請注意，如果您在 SageMaker AI Studio Classic 環境之外執行前兩個程式碼範例，該函式會將 TensorBoard 登陸頁面的 URL 傳回至 SageMaker AI 主控台，因為這些範例沒有您的網域和使用者設定檔的登入資訊。如需建立預先登入的 URL，請參閱下一節中的選項 2。

## 選項 2：適用於非 Studio Classic 環境
<a name="debugger-htb-access-tb-get-app-url-estimator-method-non-studio"></a>

如果您使用非 Studio Classic 環境 (例如 SageMaker 筆記本執行個體或 Amazon EC2)，並且想要產生預先登入 URL 以開啟 TensorBoard，您需要使用 `get_app_url` 方法，透過您的網域和使用者設定檔資訊進行，如下所示。

請注意，此選項需要網域使用者擁有 `sagemaker:CreatePresignedDomainUrl` 許可權限。如果沒有許可權限，網域使用者將會收到例外狀況錯誤。

**重要**  
請勿與他人分享任何預先登入的 URL。此 `get_app_url` 功能會建立預先登入的 URL，該 URL 會自動使用您的網域和使用者設定檔進行驗證，並可存取與您網域相關聯的任何應用程式和檔案。

```
print(
    estimator.get_app_url(
        app_type=SupportedInteractiveAppTypes.TENSORBOARD, # Required
        create_presigned_domain_url={{True}},           # Reguired to be set to True for creating a presigned URL.
        domain_id="{{your-domain-id}}",                 # Required if creating a presigned URL (create_presigned_domain_url=True).
        user_profile_name="{{your-user-profile-name}}", # Required if creating a presigned URL (create_presigned_domain_url=True).
        open_in_default_web_browser=False,            # Optional. Set to False to print the URL to terminal.
        optional_create_presigned_url_kwargs={}       # Optional. Add any additional args for Boto3 create_presigned_domain_url
    )
)
```