本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立自訂 RStudio 映像
重要
允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂 IAM 政策也必須授與許可,才能將標籤新增至這些資源。需要將標籤新增至資源的許可,因為 Studio 和 Studio Classic 會自動標記它們建立的任何資源。如果 IAM 政策允許 Studio 和 Studio Classic 建立資源,但不允許標記,則在嘗試建立資源時可能會發生 "AccessDenied" 錯誤。如需詳細資訊,請參閱提供標記 SageMaker AI 資源的許可。
提供許可來建立 SageMaker 資源的 AWS Amazon SageMaker AI 的 受管政策 已包含建立這些資源時新增標籤的許可。
此主題說明如何使用 SageMaker AI 主控台和 AWS CLI建立自訂 RStudio 映像。如果您使用 AWS CLI,則必須從本機電腦執行這些步驟。下列步驟無法從 Amazon SageMaker Studio Classic 內運作。
當您建立映像時,SageMaker AI 也會建立一個初始映像版本。每個映像版本代表存放在 Amazon Elastic 容器登錄檔 (ECR)
如需本機測試映像和解決常見問題的相關資訊,請參閱 SageMaker Studio 自訂映像範例儲存庫
將 SageMaker AI 相容 RStudio Docker 容器映像新增至 Amazon ECR
請使用下列步驟,將 Docker 容器映像新增至 Amazon ECR:
-
建立 Amazon ECR 儲存庫。
-
向 Amazon ECR 進行身分驗證。
-
建立 SageMaker AI 相容 RStudio Docker 映像檔。
-
將映像推送至 Amazon ECR 儲存庫。
注意
Amazon ECR 儲存庫必須與網域 AWS 區域 位於相同的 中。
若要建置並新增 Docker 映像至 Amazon ECR
-
使用 AWS CLI命令在 Amazon ECR 儲存庫中建立儲存庫。若要使用 Amazon ECR 主控台建立儲存庫,請參閱建立儲存庫。
aws ecr create-repository \ --repository-name rstudio-custom \ --image-scanning-configuration scanOnPush=true回應:
{ "repository": { "repositoryArn": "arn:aws:ecr:us-east-2:acct-id:repository/rstudio-custom", "registryId": "acct-id", "repositoryName": "rstudio-custom", "repositoryUri": "acct-id.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom", ... } } -
使用從
create-repository命令做為回應傳回的儲存庫 URI,向 Amazon ECR 進行身分驗證。確定 Docker 應用程式為執行中。如需詳細資訊,請參閱登錄檔身分驗證。aws ecr get-login-password | \ docker login --username AWS --password-stdin<repository-uri>回應:
Login Succeeded -
建置 Docker 影像。從包含 Dockerfile 的目錄執行以下命令。
docker build . -
使用唯一標籤標記您的建置映像。
docker tag<image-id>"<repository-uri>:<tag>" -
將容器映像推送至 Amazon ECR 儲存庫。如需詳細資訊,請參閱 ImagePush
和推送映像。 docker push<repository-uri>:<tag>回應:
The push refers to repository [<account-id>.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom] r: digest:<digest>size: 3066
從主控台建立 SageMaker 映像
建立映像
-
開啟 Amazon SageMaker AI 主控台,網址為 https://console.aws.amazon.com/sagemaker/
。 -
在左側導覽窗格中,選擇管理員組態。
-
在管理員組態下,選擇映像。
-
在自訂映像頁面中,選擇建立映像。
-
對於映像來源,請在 Amazon ECR 中輸入容器映像的登錄檔路徑。路徑格式如下。
acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest] -
選擇下一步。
-
在映像屬性下,輸入下列內容:
-
映像名稱 – 在目前 AWS 區域中,名稱必須是您帳戶中唯一的。
-
(選用) 影像顯示名稱 – 顯示在網域使用者介面中的名稱。如果未提供,
Image name則會顯示出來。 -
(選用) 描述 – 映像的一項描述。
-
IAM 角色 – 該角色必須以連接 AmazonSageMakerFullAccess
政策。使用下拉式選單,選取下列其中一個選項: -
建立新角色 — 指定您希望筆記本使用者可以存取的任何其他 Amazon Simple Storage Service (Amazon S3) 儲存貯體。如果您不想允許其他儲存貯體的存取,請選擇無。
SageMaker AI 會將
AmazonSageMakerFullAccess政策連接到角色。此角色可讓您的筆記本使用者存取核取記號旁列出的 Amazon S3 儲存貯體。 -
輸入自訂 IAM 角色 ARN — 輸入 IAM 角色的 Amazon Resource Name (ARN)。
-
使用現有角色 — 從清單中選擇一個現有角色。
-
-
(選用) 映像標籤 — 選擇新增標籤。您最多可以新增 50 個標籤。可以使用 SageMaker AI 主控台或 SageMaker AI
SearchAPI 來搜尋標籤。
-
-
在映像類型下,選取 RStudio 映像。
-
選擇提交。
新映像會顯示在自訂映像清單中並以重點標示。已成功建立映像後,您可以選擇映像名稱來檢視其屬性,或選擇建立版本建立其他版本。
若要建立其他映像版本
-
在與映像相同的行上選擇建立版本。
-
對於映像來源,請輸入 Amazon ECR 映像的登錄檔路徑。該映像不應與先前版本的 SageMaker AI 映像中使用的映像相同。
若要在 RStudio 中使用自訂映像,您必須將其連接至您的網域。如需詳細資訊,請參閱連接自訂 SageMaker 映像。。
從 建立映像 AWS CLI
本節將示範如何使用 AWS CLI建立自訂 Amazon SageMaker 映像。
使用下列步驟建立 SageMaker 映像:
建立
Image。建立
ImageVersion。建立一個程式組態檔案。
建立
AppImageConfig。
若要建立 SageMaker 映像實體
-
建立一個 SageMaker 映像。角色 ARN 至少必須已連接
AmazonSageMakerFullAccessPolicy政策。aws sagemaker create-image \ --image-name rstudio-custom-image \ --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>回應:
{ "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/rstudio-custom-image" } -
從映像建立 SageMaker 映像版本。將映像推送到 Amazon ECR 時,傳遞您選擇的唯一標籤值。
aws sagemaker create-image-version \ --image-name rstudio-custom-image \ --base-image<repository-uri>:<tag>回應:
{ "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-image/1" } -
檢查映像版本是否已成功建立。
aws sagemaker describe-image-version \ --image-name rstudio-custom-image \ --version 1回應:
{ "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-custom-image/1", "ImageVersionStatus": "CREATED" }注意
如果回應為
"ImageVersionStatus": "CREATED_FAILED",則回應也會包含失敗原因。許可問題是導致失敗的常見原因。您也可以檢查您的 Amazon CloudWatch Logs。日誌群組的名稱為/aws/sagemaker/studio。日誌串流的名稱為$domainID/$userProfileName/KernelGateway/$appName。 -
建立名為
app-image-config-input.json的組態檔案。應用程式映像組態用於配置做為核心閘道應用程式執行 SageMaker 映像。{ "AppImageConfigName": "rstudio-custom-config" } -
使用建立於上一步的檔案來建立 AppImaage 組態。
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/r-image-config" }