从 ECR 容器映像创建 SageMaker 映像 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从 ECR 容器映像创建 SageMaker 映像

要从容器映像创建 SageMaker 图像,请执行以下步骤:

  • 创建 Image

  • 创建 ImageVersion

  • 创建配置文件。

  • 创建 AppImageConfig

创建 SageMaker 图像实体

  1. 创建 SageMaker 映像。

    aws sagemaker create-image \ --image-name r-image \ --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>

    响应:

    { "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/r-image" }
  2. 从容器映像创建 SageMaker 映像版本。

    aws sagemaker create-image-version \ --image-name r-image \ --base-image <acct-id>.dkr.ecr.<region>.amazonaws.com/smstudio-custom:r

    响应:

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/r-image/1" }
  3. 检查映像版本是否已成功创建。

    aws sagemaker describe-image-version \ --image-name r-image \ --version 1

    响应:

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/r-image/1", "ImageVersionStatus": "CREATED" }
    注意

    如果响应为"ImageVersionStatus": "CREATED_FAILED",则响应还包括失败原因。权限问题是导致失败的常见原因。您还可以查看您的 Amazon CloudWatch 日志。日志组的名称为/aws/sagemaker/studio. 日志流的名称为$domainID/$userProfileName/KernelGateway/$appName.

  4. 创建一个名为app-image-config-input.json. 这些区域有:NameKernelSpecs必须与与此关联的映像中可用的 KernelSpec 的名称匹配。AppImageConfig. 此值区分大小写。您可以在映像中找到可用的内核规格,方法是运行jupyter-kernelspec list从容器内的 shell。MountPath是映像中用于装载 Amazon Elastic File System (Amazon EFS) 主目录的路径。它需要与您在容器内使用的路径不同,因为当您挂载 Amazon EFS 主目录时,该路径将被覆盖。有关在 Studio 中使用映像之前在本地测试映像的信息,请参阅开发在 SageMaker 工作室自定义图像示例存储库中。

    注意

    以下DefaultUIDDefaultGID组合是唯一可接受的值:

    • 默认编号:1000 和默认 GID:100

    • 默认编号:0 和默认 GID:0

    { "AppImageConfigName": "r-image-config", "KernelGatewayImageConfig": { "KernelSpecs": [ { "Name": "ir", "DisplayName": "R (Custom R Image)" } ], "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } } }
  5. 使用在上一步中创建的文件来创建应用程序图像。

    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" }