建立自訂 RStudio 映像 - Amazon SageMaker AI

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

建立自訂 RStudio 映像

重要

允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂 IAM 政策也必須授予許可,才能將標籤新增至這些資源。需要將標籤新增至資源的許可,因為 Studio 和 Studio Classic 會自動標記他們建立的任何資源。如果 IAM 政策允許 Studio 和 Studio Classic 建立資源,但不允許標記,則嘗試建立資源時可能會發生「AccessDenied」錯誤。如需詳細資訊,請參閱提供標記 SageMaker AI 資源的許可

AWS Amazon SageMaker AI 的 受管政策 提供建立 SageMaker 資源的許可,已包含建立這些資源時新增標籤的許可。

本主題說明如何使用 SageMaker AI 主控台和 建立自訂 RStudio 映像 AWS CLI。如果您使用 AWS CLI,則必須從本機機器執行這些步驟。下列步驟不適用於 Amazon SageMaker Studio Classic 內的 。

當您建立映像時,SageMaker AI 也會建立初始映像版本。每個映像版本代表存放在 Amazon Elastic 容器登錄檔 (ECR) 中的容器映像。容器映像必須在 RStudio 中使用的要求。如需詳細資訊,請參閱自訂 RStudio 映像規格

如需本機測試映像和解決常見問題的相關資訊,請參閱 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
  1. 使用 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", ... } }
  2. 使用從 create-repository 命令做為回應傳回的儲存庫 URI,向 Amazon ECR 進行身分驗證。確定 Docker 應用程式為執行中。如需詳細資訊,請參閱登錄檔身分驗證

    aws ecr get-login-password | \ docker login --username AWS --password-stdin <repository-uri>

    回應:

    Login Succeeded
  3. 建置 Docker 影像。從包含 Dockerfile 的目錄執行以下命令。

    docker build .
  4. 使用唯一標籤標記您的建置映像。

    docker tag <image-id> "<repository-uri>:<tag>"
  5. 將容器映像推送至 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 AI 映像

建立映像
  1. https://console.aws.amazon.com/sagemaker/:// 開啟 Amazon SageMaker AI 主控台。

  2. 在左側導覽窗格中,選擇管理員組態

  3. 管理員組態下,選擇映像

  4. 自訂映像頁面中,選擇建立映像

  5. 對於映像來源,請在 Amazon ECR 中輸入容器映像的登錄檔路徑。路徑格式如下。

    acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest]

  6. 選擇下一步

  7. 映像屬性下,輸入下列內容:

    • 映像名稱 – 在目前 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 Search API 搜尋標籤。

  8. 映像類型下,選取 RStudio 映像。

  9. 選擇提交

新映像會顯示在自訂映像清單中並以重點標示。已成功建立映像後,您可以選擇映像名稱來檢視其屬性,或選擇建立版本建立其他版本。

若要建立其他映像版本
  1. 在與映像相同的行上選擇建立版本

  2. 對於映像來源,請輸入 Amazon ECR 映像的登錄檔路徑。映像不應與先前版本的 SageMaker AI 映像中使用的映像相同。

若要在 RStudio 中使用自訂映像,您必須將其連接至您的網域。如需詳細資訊,請參閱連接自訂 SageMaker AI 映像

從 建立映像 AWS CLI

本節說明如何使用 建立自訂 Amazon SageMaker AI 映像 AWS CLI。

使用下列步驟建立 SageMaker AI 映像:

  • 建立 Image

  • 建立 ImageVersion

  • 建立一個程式組態檔案。

  • 建立 AppImageConfig

建立 SageMaker AI 映像實體
  1. 建立 SageMaker AI 映像。角色 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" }
  2. 從映像建立 SageMaker AI 映像版本。將映像推送到 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" }
  3. 檢查映像版本是否已成功建立。

    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

  4. 建立名為 app-image-config-input.json 的組態檔案。應用程式映像組態用於將 SageMaker AI 映像作為核心閘道應用程式執行的組態。

    { "AppImageConfigName": "rstudio-custom-config" }
  5. 使用建立於上一步的檔案來建立 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" }