本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本文档提供了相关 step-by-step说明,让您的用户能够在其 JupyterLab 环境中访问自定义映像。您可以使用本页上的信息为用户的工作流程创建自定义环境。这一过程包括利用:
-
Docker
-
AWS Command Line Interface
-
Amazon Elastic Container Registry
-
亚马逊 SageMaker AI AWS Management Console
按照此页面上的指南操作后,Amazon A SageMaker I 域的 JupyterLab 用户将可以从其 Jupyter 空间访问自定义图像和环境,以增强其机器学习工作流程。
重要
本页假设你有 AWS Command Line Interface 和 Docker 已安装在您的本地计算机上。
要让您的用户在其中成功运行他们的映像 JupyterLab,您必须执行以下操作:
要让用户成功运行映像
-
创建 Dockerfile
-
根据 Dockerfile 构建映像
-
将映像上传到 Amazon Elastic Container Registry
-
将图片附加到你的 Amazon A SageMaker I 域名上
-
让您的用户从您的 JupyterLab 空间访问图片
步骤 1:创建 Dockerfile
创建 Dockerfile,定义创建在用户容器中运行应用程序所需环境的步骤。
重要
您的 Dockerfile 必须符合 Dockerfile 规范 中提供的规范。
有关 Dockerfile 模板的信息,请参阅。应用程序的运行状况检查和 URL
步骤 2:构建镜像
在与 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 Elastic Container Registry 存储库。
步骤 3:将映像推送到 Amazon Elastic Container Registry 存储库
创建映像后,使用以下命令登录 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 AI 域名中
重要
允许 Studio 用户创建空间的自定义 IAM 策略还必须授予列出映像 (sagemaker: ListImage
) 的权限,以便查看自定义映像。要添加权限,请参阅《AWS Identity and Access Management用户指南》中的添加或删除身份权限。
AWS 亚马逊 A SageMaker I 的托管策略授予创建 SageMaker AI 资源的权限已经包括在创建这些资源时列出图像的权限。
推送图片后,您必须从您的 Amazon A SageMaker I 域访问该图片。使用以下步骤将图像附加到 A SageMaker I 域:
使用 SageMaker AI 控制台附加图像
-
打开 A SageMaker I 控制台
。 -
在管理员配置下,选择域。
-
从域列表中选择一个域。
-
打开环境选项卡。
-
对于专用 Studio 应用程序的自定义映像,请选择附加映像。
-
指定映像源。
-
选择下一步。
-
选择提交。
使用附加图像 AWS CLI
使用以下步骤通过以下步骤将图像附加到 SageMaker 域中 AWS CLI :
-
创建 A SageMaker I 镜像。使用以下 AWS CLI 命令时,必须将该
AmazonSageMakerFullAccess
策略附加到您的角色上。aws sagemaker create-image \ --image-name
custom-image
\ --role-arn arn:aws:iam::account-id
:role/service-role/execution-role
-
根据镜像创建 SageMaker AI 镜像版本。传递您在将映像推送到 Amazon ECR 时所选择的唯一标签值。
aws sagemaker create-image-version \ --image-name
custom-image
\ --base-imagerepository-uri
:tag
-
创建名为
app-image-config-input.json
的配置文件。应用程序映像配置用作将 SageMaker AI 映像作为代码编辑器应用程序运行的配置。您也可以在此处指定ContainerConfig
参数。{ "AppImageConfigName": "
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": { "JupyterLabAppSettings": { "CustomImages": [ { "ImageName": "custom-image
", "AppImageConfigName": "app-image-config
" } ] } } } -
以配置文件为输入,调用
UpdateDomain
命令。注意
在使用新映像更新域之前,您必须删除域中的所有应用程序。请注意,您只需要删除应用程序;不需要删除用户配置文件或共享空间。有关删除应用程序的说明,请选择以下选项之一。
-
如果您使用 SageMaker AI 控制台,请执行删除域(控制台)部分的步骤 1 到 5d 和步骤 6 到 7d。
-
如果您使用 AWS CLI,请执行删除域名 (AWS CLI) 部分的第 1 步到第 3 步。
aws sagemaker update-domain --cli-input-json file://updateDomain.json
-
现在,您的用户可以从他们的 JupyterLab 空间中选择您已附加到其域名的图片。