

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

# 在 Amazon SageMaker Studio Classic 中連接自訂 SageMaker 映像
<a name="studio-byoi-attach"></a>

**重要**  
允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂 IAM 政策也必須授與許可，才能將標籤新增至這些資源。需要將標籤新增至資源的許可，因為 Studio 和 Studio Classic 會自動標記它們建立的任何資源。如果 IAM 政策允許 Studio 和 Studio Classic 建立資源，但不允許標記，則在嘗試建立資源時可能會發生 "AccessDenied" 錯誤。如需詳細資訊，請參閱[提供標記 SageMaker AI 資源的許可](security_iam_id-based-policy-examples.md#grant-tagging-permissions)。  
提供許可來建立 SageMaker 資源的 [AWS Amazon SageMaker AI 的 受管政策](security-iam-awsmanpol.md) 已包含建立這些資源時新增標籤的許可。

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用 Studio Classic 應用程式。如需使用已更新 Studio 體驗的資訊，請參閱 [Amazon SageMaker Studio](studio-updated.md)。  
Studio Classic 仍會針對現有工作負載進行維護，但無法再用於加入。您只能停止或刪除現有的 Studio Classic 應用程式，而且無法建立新的應用程式。建議您[將工作負載遷移至新的 Studio 體驗](studio-updated-migrate.md)。

若要使用自訂 SageMaker 映像，您必須將映像的版本連接至您的網域或共用空間。當您連接映像版本時，該映像版本會出現在 SageMaker Studio Classic 啟動器中，並且可在**選取映像**下拉式清單中取得，使用者可用來啟動活動或變更筆記本使用的映像。

若要讓網域內的所有使用者都可以使用自訂 SageMaker 映像，請將映像連接至網域。若要讓共用空間內的所有使用者都可以使用映像，您可以將映像連接至共用空間。若要讓單一使用者可以使用映像，請將映像連接至使用者的設定檔。當您連接映像時，SageMaker AI 預設會使用最新的映像版本。您也可以連接特定的映像版本。連接版本後，您可以在啟動筆記本時，從 SageMaker AI 啟動器或映像選擇器中選擇版本。

在任何特定時間可以連接的映像版本數量有數量限制。達到限制後，您必須分離版本才能連結另一個版本的映像。

以下各節將示範如何使用 SageMaker AI 主控台或 AWS CLI將自訂 SageMaker 映像連接至您的網域。您只能使用 AWS CLI將自訂映像連接至共用空間。

## 將 SageMaker 映像連接至網域
<a name="studio-byoi-attach-domain"></a>

### 使用主控台連接 SageMaker 映像
<a name="studio-byoi-attach-existing"></a>

本主題描述如何使用 SageMaker AI 控制面板將現有的自訂 SageMaker 映像版本連接至您的網域。您也可以建立自訂的 SageMaker 映像和映像版本，然後將該版本連接到您的網域。如需建立映像和映像版本的程序，請參閱[建立 Amazon SageMaker Studio Classic 的自訂 SageMaker 映像](studio-byoi-create.md)。

**連接現有的映像**

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽窗格中，選擇**管理員組態**。

1. 在**管理員組態**下，選擇**網域**。

1. 從**網域**頁面中，選取要將映像連接至其中的網域。

1. 在**網域詳細資訊**頁面上，選擇**環境**索引標籤。

1. 在**環境**索引標籤的**連接至網域的自訂 SageMaker Studio Classic 映像**下，選擇**連接映像**。

1. 針對**映像來源**，選擇**現有映像**。

1. 從清單中選擇現有的映像。

1. 從清單中選擇映像的版本。

1. 選擇**下一步**。

1. 確認**映像名稱**、**映像顯示名稱**和**描述**的值。

1. 選擇 IAM 角色。如需更多更多資訊，請參閱[建立 Amazon SageMaker Studio Classic 的自訂 SageMaker 映像](studio-byoi-create.md)。

1. (選擇性) 新增映像的標籤。

1. 指定 EFS 裝載路徑。這是掛載使用者 Amazon Elastic File System (EFS) 主目錄的映像內的路徑。

1. 對於**映像類型**，請選取 **SageMaker Studio **映像

1. 在**核心名稱**中，輸入映像檔中現有核心的名稱。如需如何從映像取得核心資訊的相關資訊，請參閱 SageMaker Studio Classic 自訂映像範例儲存庫中的[開發](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md)。如需更多資訊，請參閱的**核心探索**和**使用者資料**一節[Amazon SageMaker Studio Classic 的自訂 Amazon SageMaker 映像規格](studio-byoi-specs.md)。

1. (選擇性) 對於**核心顯示名稱**，請輸入核心的顯示名稱。

1. 選擇**新增核心**。

1. 選擇**提交**。

   1. 等待映像版本連接到網域。連接後，版本會顯示在**自訂映像**清單中並以重點標示。

### 使用 連接 SageMaker 映像 AWS CLI
<a name="studio-byoi-sdk-attach"></a>

以下各節將示範如何在建立新網域或使用 AWS CLI更新現有網域時連接自訂 SageMaker 映像。

#### 將影 SageMaker 加至新網域
<a name="studio-byoi-sdk-attach-new-domain"></a>

以下部分將示範如何建立連接版本的新網域。這些步驟需要您指定建立網域所需的 Amazon Virtual Private Cloud (VPC) 資訊和執行角色。您可以執行下列步驟來建立領域並連接自訂 SageMaker 映像：
+ 取得您的預設 VPC ID 和子網路識別碼。
+ 建立指定映像檔的網域的組態檔。
+ 用組態檔案建立網域。

**若要將自訂 SageMaker 映像新增至您的網域**

1. 取得您的預設 VPC ID。

   ```
   aws ec2 describe-vpcs \
       --filters Name=isDefault,Values=true \
       --query "Vpcs[0].VpcId" --output text
   ```

   回應看起來應該類似以下的內容。

   ```
   vpc-xxxxxxxx
   ```

1. 使用上一步的 VPC ID 取得您的預設子網路 ID。

   ```
   aws ec2 describe-subnets \
       --filters Name=vpc-id,Values=<vpc-id> \
       --query "Subnets[*].SubnetId" --output json
   ```

   回應看起來應該類似以下的內容。

   ```
   [
       "subnet-b55171dd",
       "subnet-8a5f99c6",
       "subnet-e88d1392"
   ]
   ```

1. 建立一個名為 `create-domain-input.json` 的組態檔案。插入 VPC ID、子網路 ID、`ImageName` 和上一步的 `AppImageConfigName`。由於未指定 `ImageVersionNumber`，因此會使用最新版本的映像檔，這是此情況下的唯一版本。

   ```
   {
       "DomainName": "domain-with-custom-image",
       "VpcId": "<vpc-id>",
       "SubnetIds": [
           "<subnet-ids>"
       ],
       "DefaultUserSettings": {
           "ExecutionRole": "<execution-role>",
           "KernelGatewayAppSettings": {
               "CustomImages": [
                   {
                       "ImageName": "custom-image",
                       "AppImageConfigName": "custom-image-config"
                   }
               ]
           }
       },
       "AuthMode": "IAM"
   }
   ```

1. 使用連接的自訂 SageMaker 映像建立網域。

   ```
   aws sagemaker create-domain \
       --cli-input-json file://create-domain-input.json
   ```

   回應看起來應該類似以下的內容。

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx",
       "Url": "https://d-xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/..."
   }
   ```

#### 將 SageMaker 映像連接到您目前的網域
<a name="studio-byoi-sdk-attach-current-domain"></a>

如果您已加入 SageMaker AI 網域，則可以將自訂映像連接到目前的網域。如需加入 SageMaker AI 網域的詳細資訊，請參閱 [Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)。將自訂映像連接至目前的網域時，您不需要指定 VPC 資訊和執行角色。連接版本後，您必須刪除網域中的所有應用程式，然後重新開啟 Studio Classic。要瞭解刪除應用程式的相關資訊，請參閱[刪除 Amazon SageMaker AI 網域](gs-studio-delete-domain.md)。

您可以執行下列步驟將 SageMaker 映像新增至目前的網域。
+ 從 SageMaker AI 控制面板取得您的 `DomainID`。
+ 使用 `DomainID` 取得網域的 `DefaultUserSettings`。
+ 將 `ImageName` 和 `AppImageConfig` 新增為 `CustomImage` 至 `DefaultUserSettings`。
+ 更新您的網域以包含自訂映像檔。

**若要將自訂 SageMaker 映像新增至您的網域**

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽窗格中，選擇**管理員組態**。

1. 在**管理員組態**下，選擇**網域**。

1. 從**網域**頁面中，選取要將映像連接至其中的網域。

1. 在**網域詳細資訊**頁面中，選取**網域設定**標籤。

1. 從**網域設定**索引標籤的**一般設定**下，找到 `DomainId`。ID 的格式如下：`d-xxxxxxxxxxxx`。

1. 使用網域 ID 來取得網域的描述。

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   回應看起來應該類似以下的內容。

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. 將回應的預設使用者設定區段儲存至名為的檔案 `default-user-settings.json`。

1. 插入上一個步驟中的 `ImageName`和 `AppImageConfigName` 做為自訂映像。由於未指定 `ImageVersionNumber`，因此會使用最新版本的映像檔，這是此情況下的唯一版本。

   ```
   {
       "DefaultUserSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. 使用網域 ID 和預設使用者設定檔案來更新您的網域。

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-user-settings.json
   ```

   回應看起來應該類似以下的內容。

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## 將影 SageMaker 加至共用空間
<a name="studio-byoi-attach-shared-space"></a>

您只能使用 AWS CLI將 SageMaker 映像連接至共用空間。連接版本後，您必須刪除共用空間中的所有應用程式，然後重新開啟 Studio Classic。要瞭解刪除應用程式的相關資訊，請參閱[刪除 Amazon SageMaker AI 網域](gs-studio-delete-domain.md)。

您可以執行下列步驟，將 SageMaker 映像新增至共用空間。
+ 從 SageMaker AI 控制面板取得您的 `DomainID`。
+ 使用 `DomainID` 取得網域的 `DefaultSpaceSettings`。
+ 將 `ImageName` 和 `AppImageConfig` 新增為 `CustomImage` 至 `DefaultSpaceSettings`。
+ 更新您的網域以包含共用空間的自訂映像檔。

**將自訂 SageMaker 映像新增至您的共用空間**

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽窗格中，選擇**管理員組態**。

1. 在**管理員組態**下，選擇**網域**。

1. 從**網域**頁面中，選取要將映像連接至其中的網域。

1. 在**網域詳細資訊**頁面中，選取**網域設定**標籤。

1. 從**網域設定**索引標籤的**一般設定**下，找到 `DomainId`。ID 的格式如下：`d-xxxxxxxxxxxx`。

1. 使用網域 ID 來取得網域的描述。

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   回應看起來應該類似以下的內容。

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       ...
       "DefaultSpaceSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. 將回應的預設空間設定區段儲存至名為 `default-space-settings.json` 的檔案。

1. 插入上一個步驟中的 `ImageName` 和 `AppImageConfigName`做為自訂映像。由於未指定 `ImageVersionNumber`，因此會使用最新版本的映像檔，這是此情況下的唯一版本。

   ```
   {
       "DefaultSpaceSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. 使用網域 ID 和預設空間設定檔來更新您的網域。

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-space-settings.json
   ```

   回應看起來應該類似以下的內容。

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## 在 SageMaker AI 中檢視連接的映像
<a name="studio-byoi-sdk-view"></a>

在您建立自訂 SageMaker 映像並將其連接至您的網域之後，該映像會出現在網域的**環境**索引標籤中。您只能使用 AWS CLI 下列命令，使用 檢視共用空間的連接映像。

```
aws sagemaker describe-domain \
    --domain-id <d-xxxxxxxxxxxx>
```