本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立自訂 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 映像檔 AWS CLI。
當您從主控台建立映像時, SageMaker 也會建立初始映像版本。圖像版本代表 Amazon 彈性容器註冊表(ECR)中的容器
建立自訂 SageMaker 映像檔之後,您必須將其附加至您的網域或共用空間,才能與 Studio 經典版搭配使用。如需詳細資訊,請參閱附加自訂 SageMaker 影像。
從控制台創建 SageMaker 映像
以下部分將演示如何從 SageMaker控制台創建自定義 SageMaker 映像。
建立映像
-
在打開 Amazon SageMaker 控制台https://console.aws.amazon.com/sagemaker/
。 -
在左側導覽窗格中,選擇管理員組態。
-
在管理員組態下,選擇映像。
-
在自訂映像頁面中,選擇建立映像。
-
對於映像來源,請在 Amazon 中輸入容器映像的登錄路徑ECR。路徑格式如下。
acct-id
.dkr.ecr.region
.amazonaws.com/repo-name[:tag] or [@digest]
-
選擇下一步。
-
在映像屬性下,輸入下列內容:
-
圖片名稱 — 此名稱對您目前的帳戶而言都必須是唯一的 AWS 區域。
-
(選擇性) 顯示名稱 — 顯示在 Studio 典型使用者介面中的名稱。如果未提供,
Image name
則會顯示出來。 -
(選用) 描述 – 映像的一項描述。
-
IAMrole — 角色必須附加AmazonSageMakerFullAccess
原則。在下拉式清單中,選擇下列其中一個選項: -
建立新角色 — 指定您希望筆記本使用者可以存取的任何其他 Amazon Simple Storage Service (Amazon S3) 儲存貯體。如果您不想將存取許可新增至更多儲存貯體,請選擇無。
SageMaker 將
AmazonSageMakerFullAccess
原則附加至角色。此角色可讓筆記本使用者存取核取標記旁列出的 S3 儲存貯體。 -
輸入自訂IAM角色 ARN — 輸入IAM角色的 Amazon 資源名稱 (ARN)。
-
使用現有角色 — 從清單中選擇一個現有角色。
-
-
(選用) 映像標籤 — 選擇新增標籤。您最多可新增 50 個標籤。標籤可以使用 Studio 傳統版使用者介面、 SageMaker主控台或 SageMaker
Search
API.
-
-
選擇提交。
新映像會顯示在自訂映像清單中並以重點標示。已成功建立映像後,您可以選擇映像名稱來檢視其屬性,或選擇建立版本建立其他版本。
若要建立其他映像版本
-
在與映像相同的行上選擇建立版本。
-
對於映像來源,請輸入 Amazon ECR 容器映像的登錄路徑。容器映像檔不應與舊版影像中使用的 SageMaker 影像相同。
從建立 SageMaker 映像檔 AWS CLI
您可以執行下列步驟,使用 SageMaker 從容器映像建立映像 AWS CLI。
建立
Image
。建立
ImageVersion
。建立一個程式組態檔案。
建立
AppImageConfig
。
若要建立影 SageMaker 像圖元
-
建立 SageMaker 映像檔。
aws sagemaker create-image \ --image-name custom-image \ --role-arn arn:aws:iam::
<acct-id>
:role/service-role/<execution-role>
回應看起來應該類似以下的內容。
{ "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/custom-image" }
-
從容器 SageMaker 映像檔建立映像版本。
aws sagemaker create-image-version \ --image-name custom-image \ --base-image
<acct-id>
.dkr.ecr.<region>
.amazonaws.com/smstudio-custom:custom-image回應看起來應該類似以下的內容。
{ "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1" }
-
檢查映像檔版本是否已成功建立。
aws sagemaker describe-image-version \ --image-name custom-image \ --version-number 1
回應看起來應該類似以下的內容。
{ "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1", "ImageVersionStatus": "CREATED" }
注意
如果回應為
"ImageVersionStatus": "CREATED_FAILED"
,則回應也會包含失敗原因。許可問題是導致失敗的常見原因。如果在為自訂映像啟動或執行 KernelGateway 應用程式時發生故障,也可以檢查 Amazon CloudWatch 日誌。日誌群組的名稱為/aws/sagemaker/studio
。日誌串流的名稱為$domainID/$userProfileName/KernelGateway/$appName
。 -
建立名為
app-image-config-input.json
的組態檔案。的Name
值KernelSpecs
必須符合與此相關聯之影像中 kernelSpec 可用的名稱AppImageConfig
。此值區分大小寫。您可以通過jupyter-kernelspec list
從容器內的 shell 運行找到圖像 kernelSpecs 中可用的。MountPath
是映像內掛載 Amazon Elastic File System (AmazonEFS) 主目錄的路徑。它需要與您在容器內使用的路徑不同,因為當您的 Amazon EFS 主目錄掛載時,該路徑將被覆蓋。注意
下列
DefaultUID
與DefaultGID
組合是唯一可接受的值:預設值UID:1000 和預設值GID:100
預設值UID:0 和預設值GID:0
{ "AppImageConfigName": "custom-image-config", "KernelGatewayImageConfig": { "KernelSpecs": [ { "Name": "python3", "DisplayName": "Python 3 (ipykernel)" } ], "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } } }
-
AppImageConfig 使用在上一步中創建的文件創建。
aws sagemaker create-app-image-config \ --cli-input-json file://app-image-config-input.json
回應看起來應該類似以下的內容。
{ "AppImageConfigArn": "arn:aws:sagemaker:us-east-2:acct-id:app-image-config/custom-image-config" }