本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为用户提供对自定义图像的访问权限
本文档提供 step-by-step说明,让您的用户能够访问其代码编辑器环境的自定义镜像。您可以使用此页面上的信息为用户的工作流程创建自定义环境。该过程涉及利用:
-
Docker
-
AWS Command Line Interface
-
Amazon Elastic Container Registry
-
Amazon SageMaker AWS Management Console
按照此页面上的指南操作后,Amazon SageMaker 域上的代码编辑器用户将可以从其代码编辑器空间访问自定义图像和环境,以增强其机器学习工作流程。
重要
本页假设你有 AWS Command Line Interface 和 Docker 已安装在您的本地计算机上。
要让您的用户在代码编辑器中成功运行其映像,您必须执行以下操作:
让您的用户成功运行映像
-
创建 Dockerfile
-
从 Dockerfile 中生成镜像
-
将图片上传到 Amazon 弹性容器注册表
-
将图片附加到您的 Amazon SageMaker 域名
-
让您的用户从其代码编辑器空间访问图像
步骤 1:创建 Dockerfile
创建 Dockerfile 以定义创建在用户容器中运行应用程序所需的环境所需的步骤。
重要
您的 Dockerfile 必须符合中提供的规范。Dockerfile 规格
有关正确格式的 Dockerfiles 示例,请参阅。Dockerfile 示例
第 2 步:构建 Dockerfile
在与 Dockerfile 相同的目录中,使用以下命令构建镜像:
docker build -t username/imagename:tag your-account-id.dkr.ecr.
AWS 区域
.amazonaws.com/your-repository-name
:tag
重要
您的图片必须采用以下格式进行标记:123456789012
.dkr.ecr.your-region.amazonaws.com/your-repository-name
:tag
否则,您将无法将其推送到 Amazon 弹性容器注册表存储库。
步骤 3:将镜像推送到 Amazon 弹性容器注册表存储库
生成映像后,使用以下命令登录到您的 Amazon ECR 存储库:
aws ecr get-login-password --region
AWS 区域
| docker login --username AWS --password-stdin123456789012
.dkr.ecr.AWS 区域
.amazonaws.com
登录后,使用以下命令推送你的 Dockerfile:
docker push
123456789012
.dkr.ecr.AWS 区域
.amazonaws.com/your-repository-name
:tag
第 4 步:将图片附加到用户的 Amazon SageMaker 域名
推送图片后,您必须使用 SageMaker 控制台或 Amazon SageMaker 域名访问该图片 AWS CLI。
使用 SageMaker 控制台附加图像
使用以下步骤通过 SageMaker 控制台将映像附加到 SageMaker 域中:
-
打开控制SageMaker 台
。 -
在管理员配置下,选择域。
-
从域名列表中选择一个域。
-
打开 “环境” 选项卡。
-
对于个人 Studio 应用程序的自定义图像,请选择附加图像。
-
指定图像来源。您可以创建新图像或选择现有图像。
-
选择下一步。
-
选择代码编辑器作为应用程序类型。
-
选择提交。
使用 “附上图片” AWS CLI
使用以下步骤通过以下步骤将图像附加到 SageMaker 域中 AWS CLI :
-
创建 SageMaker 镜像。该角色ARN必须附加
AmazonSageMakerFullAccess
策略。aws sagemaker create-image \ --image-name
code-editor-custom-image
\ --role-arn arn:aws:iam::account-id
:role/service-role/execution-role
-
根据 SageMaker 图像创建图像版本。将您在将图片推送到 Amazon 时选择的唯一标签值传递给亚马逊ECR。
aws sagemaker create-image-version \ --image-name code-editor-custom-image \ --base-image
repository-uri
:tag
-
创建名为的配置文件
app-image-config-input.json
。应用程序映像配置用作将 SageMaker 图像作为代码编辑器应用程序运行的配置。您也可以在此处指定您的ContainerConfig
参数。{ "AppImageConfigName":
"code-editor-app-image-config"
, "CodeEditorAppImageConfig": { "ContainerConfig": {} } } -
AppImageConfig
使用您创建的应用程序映像配置文件创建。aws sagemaker create-app-image-config \ --cli-input-json file://
app-image-config-input.json
-
创建一个名为
updateDomain.json
的配置文件。请务必指定您的域名 ID。{ "DomainId":
"domain-id"
, "DefaultUserSettings": { "CodeEditorAppSettings": { "CustomImages": [ { "ImageName":"code-editor-custom-image"
, "AppImageConfigName":"code-editor-app-image-config"
} ] } } } -
使用配置文件作为输入来调用该
UpdateDomain
命令。注意
在使用新映像更新域名之前,必须先删除域中的所有应用程序。请注意,您只需要删除应用程序;无需删除用户配置文件或共享空间。有关删除应用程序的说明,请选择以下选项之一。
-
如果您使用 SageMaker 控制台,请执行删除域名(控制台)部分的步骤 1 到 5d 以及步骤 6 到 7d。
-
如果您使用 AWS CLI,请执行删除域名 (AWS CLI) 部分的第 1 步到第 3 步。
aws sagemaker update-domain --cli-input-json file://updateDomain.json
-
第 5 步:让您的用户从其代码编辑器空间访问图像
现在,您的用户可以从其代码编辑器空间中选择您已附加到其域的图像。
有关选择自定义图像的更多信息,请参阅在 Studio 中启动代码编辑器应用程序。