本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
附加自訂 SageMaker 影像
重要
允許 Amazon SageMaker 工作室或 Amazon 工作 SageMaker 室經典版創建 Amazon SageMaker 資源的自定義 IAM 政策還必須授予許可才能向這些資源添加標籤。需要向資源添加標籤的權限,因為 Studio 和 Studio 經典版會自動標記它們創建的任何資源。如果 IAM 政策允許 Studio 和 Studio 經典版建立資源,但不允許標記,則在嘗試建立資源時可能會發生 AccessDenied "" 錯誤。如需詳細資訊,請參閱 提供標記資 SageMaker源的權限。
AWS Amazon 的受管政策 SageMaker授予建立 SageMaker 資源的權限,已包含在建立這些資源時新增標籤的權限。
重要
截至 2023 年 11 月 30 日,以前的 Amazon SageMaker 工作室體驗現在被命名為 Amazon SageMaker 工作室經典。下面的部分是特定於使用 Studio 傳統版應用程序。如需使用更新後的 Studio 體驗的相關資訊,請參閱Amazon SageMaker 一室。
若要使用自訂 SageMaker 映像檔,您必須將映像檔的版本附加至您的網域或共用空間。當您附加映像版本時,它會出現在 SageMaker Studio Classic Launcher 中,並且位於 [選取影像] 下拉式清單中,使用者可用來啟動活動或變更筆記本使用的映像。
若要讓網域內的所有使用者都可以使用自訂映 SageMaker 像檔,請將映像附加至網域。若要讓共用空間內的所有使用者都可以使用映像,您可以將映像連接至共用空間。若要讓單一使用者可以使用映像,請將映像連接至使用者的設定檔。附加影像時,依預設 SageMaker 會使用最新的映像版本。您也可以連接特定的映像版本。附加版本後,您可以在啟動筆記本時,從啟動器或影像選擇器中選擇版本。 SageMaker
在任何特定時間可以連接的映像版本數量有數量限制。達到限制後,您必須分離版本才能連結另一個版本的映像。
以下各節將示範如何使用 SageMaker 主控台或將自訂 SageMaker 映像檔附加至您的網域 AWS CLI。您只能使用 AWS CLI將自訂映像連接至共用空間。
將影 SageMaker 像附加至網域
使用控制台附加 SageMaker 圖像
本主題說明如何使用 SageMaker 控制台將現有的自訂 SageMaker 映像檔版本附加至您的網域。您也可以建立自訂 SageMaker 映像檔和映像檔版本,然後將該版本附加到您的網域。如需建立映像和映像版本的程序,請參閱建立自訂 SageMaker 映像檔。
連接現有的映像
-
在以下位置打開 Amazon SageMaker 控制台 https://console.aws.amazon.com/sagemaker/
。 -
在左側導覽窗格中,選擇管理員組態。
-
在 [管理員設定] 下,選擇 [網域
-
在「網域」頁面中,選取要附加映像檔的網域。
-
在網域詳細資訊頁面上,選擇環境索引標籤。
-
在 [環境] 索引標籤的 [附加至網域的自訂 SageMaker Studio 傳統映像] 下,選擇 [附加映像]。
-
針對映像來源,選擇現有映像。
-
從清單中選擇現有的映像。
-
從清單中選擇映像的版本。
-
選擇下一步。
-
確認映像名稱、映像顯示名稱和描述的值。
-
選擇 IAM 角色。如需更多更多資訊,請參閱建立自訂 SageMaker 映像檔。
-
(選擇性) 新增映像的標籤。
-
指定 EFS 裝載路徑。這是掛載使用者 Amazon Elastic File System (EFS) 主目錄的映像內的路徑。
-
對於圖像類型,選擇SageMaker 工作室映像
-
在核心名稱中,輸入映像檔中現有核心的名稱。如需如何從映像取得核心資訊的詳細資訊,請參閱 SageMaker Studio 傳統自訂映像範例存放庫中的開發
。如需更多資訊,請參閱的核心探索和使用者資料一節自訂 SageMaker 影像規格。 -
(選擇性) 對於核心顯示名稱,請輸入核心的顯示名稱。
-
選擇新增核心。
-
選擇提交。
等待映像版本連接到網域。連接後,版本會顯示在自訂映像清單中並以重點標示。
使用附加 SageMaker 影像 AWS CLI
以下各節將示範如何在建立新網域或使用更新現有網域時附加自訂 SageMaker 映像檔 AWS CLI。
將 SageMaker 映像檔附加至新網域
以下部分將示範如何建立連接版本的新網域。這些步驟需要您指定建立網域所需的 Amazon Virtual Private Cloud (VPC) 資訊和執行角色。您可以執行下列步驟來建立網域並附加自訂 SageMaker 映像:
取得您的預設 VPC ID 和子網路 ID。
建立指定映像檔的網域的組態檔。
用組態檔案建立網域。
將自訂 SageMaker 映像檔新增至您的網域
-
取得您的預設 VPC ID。
aws ec2 describe-vpcs \ --filters Name=isDefault,Values=true \ --query "Vpcs[0].VpcId" --output text
回應看起來應該類似以下的內容。
vpc-xxxxxxxx
-
使用上一步的 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" ]
-
建立一個名為
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" } -
使用附加的自訂 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 圖片附加到您目前的網域
如果您已登入 SageMaker 網域,您可以將自訂映像檔附加到您目前的網域。如需上線至 SageMaker 網域的詳細資訊,請參閱Amazon SageMaker 域名概述。將自訂映像連接至目前的網域時,您不需要指定 VPC 資訊和執行角色。附加版本後,您必須刪除網域中的所有應用程式,然後重新開啟 Studio 經典版。要瞭解刪除應用程式的相關資訊,請參閱刪除 Amazon SageMaker 域。
您可以執行下列步驟,將 SageMaker 映像新增至目前的網域。
DomainID
從 SageMaker 控制面板獲取。使用
DomainID
取得網域的DefaultUserSettings
。將
ImageName
和AppImageConfig
新增為CustomImage
至DefaultUserSettings
。更新您的網域以包含自訂映像檔。
將自訂 SageMaker 映像檔新增至您的網域
-
在以下位置打開 Amazon SageMaker 控制台 https://console.aws.amazon.com/sagemaker/
。 -
在左側導覽窗格中,選擇管理員組態。
-
在 [管理員設定] 下,選擇 [網域
-
在「網域」頁面中,選取要附加映像檔的網域。
-
在網域詳細資訊頁面中,選取網域設定標籤。
-
從網域設定索引標籤的一般設定下,找到
DomainId
。ID 的格式如下:d-xxxxxxxxxxxx
。 -
使用網域 ID 來取得網域的描述。
aws sagemaker describe-domain \ --domain-id
<d-xxxxxxxxxxxx>
回應看起來應該類似以下的內容。
{ "DomainId": "d-xxxxxxxxxxxx", "DefaultUserSettings": { "KernelGatewayAppSettings": { "CustomImages": [ ], ... } } }
-
將回應的預設使用者設定區段儲存至名為的檔案
default-user-settings.json
。 -
插入上一個步驟中的
ImageName
和AppImageConfigName
做為自訂映像。由於未指定ImageVersionNumber
,因此會使用最新版本的映像檔,這是此情況下的唯一版本。{ "DefaultUserSettings": { "KernelGatewayAppSettings": { "CustomImages": [ { "ImageName": "string", "AppImageConfigName": "string" } ], ... } } }
-
使用網域 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 影像附加至共用空間
您只能使用將 SageMaker 影像附加至共用空間 AWS CLI。附加版本之後,您必須刪除共用空間中的所有應用程式,然後重新開啟 Studio 經典版。要瞭解刪除應用程式的相關資訊,請參閱刪除 Amazon SageMaker 域。
您可以執行下列步驟,將映 SageMaker 像新增至共用空間。
DomainID
從 SageMaker 控制面板獲取。使用
DomainID
取得網域的DefaultSpaceSettings
。將
ImageName
和AppImageConfig
新增為CustomImage
至DefaultSpaceSettings
。更新您的網域以包含共用空間的自訂映像檔。
將自訂影 SageMaker 像新增至共用空間
-
在以下位置打開 Amazon SageMaker 控制台 https://console.aws.amazon.com/sagemaker/
。 -
在左側導覽窗格中,選擇管理員組態。
-
在 [管理員設定] 下,選擇 [網域
-
在「網域」頁面中,選取要附加映像檔的網域。
-
在網域詳細資訊頁面中,選取網域設定標籤。
-
從網域設定索引標籤的一般設定下,找到
DomainId
。ID 的格式如下:d-xxxxxxxxxxxx
。 -
使用網域 ID 來取得網域的描述。
aws sagemaker describe-domain \ --domain-id
<d-xxxxxxxxxxxx>
回應看起來應該類似以下的內容。
{ "DomainId": "d-xxxxxxxxxxxx", ... "DefaultSpaceSettings": { "KernelGatewayAppSettings": { "CustomImages": [ ], ... } } }
-
將回應的預設空間設定區段儲存至名為
default-space-settings.json
的檔案。 -
插入上一個步驟中的
ImageName
和AppImageConfigName
做為自訂映像。由於未指定ImageVersionNumber
,因此會使用最新版本的映像檔,這是此情況下的唯一版本。{ "DefaultSpaceSettings": { "KernelGatewayAppSettings": { "CustomImages": [ { "ImageName": "string", "AppImageConfigName": "string" } ], ... } } }
-
使用網域 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
建立自訂 SageMaker 映像並將其附加至您的網域後,映像會出現在網域的 [環境] 索引標籤中。您只能使用以下指令,使用檢視共 AWS CLI 用空間的貼附影像。
aws sagemaker describe-domain \ --domain-id
<d-xxxxxxxxxxxx>