本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
附上自定义 SageMaker 图片
重要
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义IAM策略还必须授予向这些资源添加标签的权限。需要向资源添加标签的权限,因为 Studio 和 Studio Classic 会自动标记他们创建的任何资源。如果IAM策略允许 Studio 和 Studio Classic 创建资源但不允许标记,则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息,请参阅 提供标记 SageMaker资源的权限。
AWS Amazon 托管政策 SageMaker授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。
重要
截至 2023 年 11 月 30 日,之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用 Studio Classic 应用程序。有关使用更新后的 Studio 体验的信息,请参阅亚马逊 SageMaker Studio。
要使用自定义 SageMaker 镜像,您必须将镜像版本附加到您的网域或共享空间。附加图像版本时,它会显示在 SageMaker Studio Classic Launcher 中,并显示在 “选择图像” 下拉列表中,用户可以使用该下拉列表启动活动或更改笔记本使用的图像。
要将自定义 SageMaker 图像提供给网域内的所有用户,您需要将该图像附加到网域。要使一个映像可供共享空间中的所有用户使用,可以将该映像附加到共享空间。要使一个映像可供单个用户使用,需要将该映像附加到该用户的配置文件中。附加图像时,默认 SageMaker 使用最新的图像版本。您也可以附加特定的映像版本。附加版本后,您可以在启动笔记本时从 SageMaker 启动器或图像选择器中选择版本。
在任何给定时间可以附加的映像版本的数量是有限的。达到限制后,必须分离一个版本才能附加映像的另一个版本。
以下各节演示如何使用 SageMaker 控制台或将自定义 SageMaker 图像附加到您的网域 AWS CLI。您只能使用 AWS CLI将自定义映像附加到共享空间。
将 SageMaker 图像附加到网域
使用控制台附加 SageMaker 图像
本主题介绍如何使用 SageMaker 控制面板将现有的自定义 SageMaker 图像版本附加到您的网域。您也可以创建自定义 SageMaker 图像和图像版本,然后将该版本附加到您的域中。有关创建映像和映像版本的过程,请参阅创建自定义 SageMaker 镜像。
附加现有映像
-
打开亚马逊 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
在左侧导航窗格中,选择管理员配置。
-
在管理员配置下,选择域。
-
在域名页面中,选择要将图像附加到的域。
-
在域详细信息页面上,选择环境选项卡。
-
在 “环境” 选项卡上,在 “附加到域名的自定义 SageMaker Studio Classic 图像” 下,选择 “附加图像”。
-
对于映像源,选择现有映像。
-
从列表中选择现有映像。
-
从列表中选择映像的版本。
-
选择下一步。
-
验证映像名称、映像显示名称和描述的值。
-
选择IAM角色。有关更多信息,请参阅 创建自定义 SageMaker 镜像。
-
(可选)为映像添加标签。
-
指定EFS装载路径。这是镜像中挂载用户的 Amazon Elastic File System (EFS) 主目录的路径。
-
对于图像类型,请选择 SageMaker Studio 镜像
-
对于内核名称中,输入映像中现有内核的名称。有关如何从镜像获取内核信息的信息,请参阅 SageMaker Studio Classic 自定义图像样本存储库DEVELOPMENT
中的。有关更多信息,请参阅 自定义 SageMaker 图像规格 的内核发现和用户数据部分。 -
(可选)对于内核显示名称,输入内核的显示名称。
-
选择添加内核。
-
选择提交。
等待映像版本附加到域。附加后,该版本将显示在自定义映像列表中,并短暂高亮显示。
使用附加 SageMaker 图像 AWS CLI
以下各节演示了在创建新域名或使用更新现有域名时如何附加自定义 SageMaker 图片 AWS CLI。
将 SageMaker 图像附加到新域名
以下部分演示如何创建附有版本的新域。这些步骤要求您指定创建域所需的亚马逊 Virtual Private Cloud (VPC) 信息和执行角色。您可以执行以下步骤来创建域并附加自定义 SageMaker 映像:
获取您的默认 VPC ID 和子网IDs。
为域创建配置文件,该文件指定映像。
使用配置文件创建域。
将自定义 SageMaker 图片添加到您的网域
-
获取您的默认 VPC ID。
aws ec2 describe-vpcs \ --filters Name=isDefault,Values=true \ --query "Vpcs[0].VpcId" --output text
响应内容应该类似于以下内容。
vpc-xxxxxxxx
-
IDs使用上一步中的 VPC ID 获取您的默认子网。
aws ec2 describe-subnets \ --filters Name=vpc-id,Values=
<vpc-id>
\ --query "Subnets[*].SubnetId" --output json响应内容应该类似于以下内容。
[ "subnet-b55171dd", "subnet-8a5f99c6", "subnet-e88d1392" ]
-
创建一个名为
create-domain-input.json
的配置文件。插入前面步骤AppImageConfigName
中的 VPC ID IDsImageName
、子网和。由于未指定ImageVersionNumber
,因此将使用映像的最新版本,也是本例中唯一的版本。{ "DomainName": "domain-with-custom-image", "VpcId": "
<vpc-id>
", "SubnetIds": [ "<subnet-ids>
" ], "DefaultUserSettings": { "ExecutionRole": "<execution-role>
", "KernelGatewayAppSettings": { "CustomImages": [ { "ImageName": "custom-image", "AppImageConfigName": "custom-image-config" } ] } }, "AuthMode": "IAM" } -
使用附带的自定义 SageMaker 图像创建域名。
aws sagemaker create-domain \ --cli-input-json file://create-domain-input.json
响应内容应该类似于以下内容。
{ "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx", "Url": "https://d-xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/..." }
将 SageMaker 图片附加到您当前的域名
如果您已加入 SageMaker 域名,则可以将自定义图像附加到当前域名。有关加入 SageMaker 域名的更多信息,请参阅Amazon SageMaker 域名概述。将自定义图像附加到当前域名时,您无需指定VPC信息和执行角色。附加版本后,必须删除网域中的所有应用程序,然后重新打开 Studio Classic。有关删除应用程序的信息,请参阅 删除亚马逊 SageMaker 域名。
您可以执行以下步骤将 SageMaker 图片添加到您当前的域中。
DomainID
从 SageMaker 控制面板获取。使用
DomainID
获取域的DefaultUserSettings
。将
ImageName
和AppImageConfig
作为CustomImage
添加到DefaultUserSettings
。更新域以包含自定义映像。
将自定义 SageMaker 图片添加到您的网域
-
打开亚马逊 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
在左侧导航窗格中,选择管理员配置。
-
在管理员配置下,选择域。
-
在域名页面中,选择要将图像附加到的域。
-
在域详细信息页面上,选择域设置选项卡。
-
在域设置选项卡的常规设置下,找到
DomainId
。ID 的格式如下:d-xxxxxxxxxxxx
。 -
使用域 ID 获取域的描述。
aws sagemaker describe-domain \ --domain-id
<d-xxxxxxxxxxxx>
响应内容应该类似于以下内容。
{ "DomainId": "d-xxxxxxxxxxxx", "DefaultUserSettings": { "KernelGatewayAppSettings": { "CustomImages": [ ], ... } } }
-
将响应的默认用户设置部分保存到名为
default-user-settings.json
的文件中。 -
插入前面步骤中的
ImageName
和AppImageConfigName
作为自定义映像。由于未指定ImageVersionNumber
,因此将使用映像的最新版本,也是本例中唯一的版本。{ "DefaultUserSettings": { "KernelGatewayAppSettings": { "CustomImages": [ { "ImageName": "string", "AppImageConfigName": "string" } ], ... } } }
-
使用域 ID 和默认用户设置文件更新域。
aws sagemaker update-domain \ --domain-id
<d-xxxxxxxxxxxx>
\ --cli-input-json file://default-user-settings.json响应内容应该类似于以下内容。
{ "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx" }
将 SageMaker 图像附加到共享空间
您只能使用将 SageMaker 图像附加到共享空间 AWS CLI。附加版本后,必须删除共享空间中的所有应用程序并重新打开 Studio Classic。有关删除应用程序的信息,请参阅 删除亚马逊 SageMaker 域名。
您可以执行以下步骤将 SageMaker 图像添加到共享空间。
DomainID
从 SageMaker 控制面板获取。使用
DomainID
获取域的DefaultSpaceSettings
。将
ImageName
和AppImageConfig
作为CustomImage
添加到DefaultSpaceSettings
。更新域以包含共享空间的自定义映像。
将自定义 SageMaker 图像添加到您的共享空间
-
打开亚马逊 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
在左侧导航窗格中,选择管理员配置。
-
在管理员配置下,选择域。
-
在域名页面中,选择要将图像附加到的域。
-
在域详细信息页面上,选择域设置选项卡。
-
在域设置选项卡的常规设置下,找到
DomainId
。ID 的格式如下:d-xxxxxxxxxxxx
。 -
使用域 ID 获取域的描述。
aws sagemaker describe-domain \ --domain-id
<d-xxxxxxxxxxxx>
响应内容应该类似于以下内容。
{ "DomainId": "d-xxxxxxxxxxxx", ... "DefaultSpaceSettings": { "KernelGatewayAppSettings": { "CustomImages": [ ], ... } } }
-
将响应的默认空间设置部分保存到名为
default-space-settings.json
的文件中。 -
插入前面步骤中的
ImageName
和AppImageConfigName
作为自定义映像。因为没有指定ImageVersionNumber
,所以使用映像的最新版本,这是本例中唯一的版本。{ "DefaultSpaceSettings": { "KernelGatewayAppSettings": { "CustomImages": [ { "ImageName": "string", "AppImageConfigName": "string" } ], ... } } }
-
使用域 ID 和默认空间设置文件更新您的域。
aws sagemaker update-domain \ --domain-id
<d-xxxxxxxxxxxx>
\ --cli-input-json file://default-space-settings.json响应内容应该类似于以下内容。
{ "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx" }
在中查看所附图片 SageMaker
创建自定义 SageMaker 映像并将其附加到您的域名后,该图像将出现在该域的环境选项卡中。您只能使用以下命令查看共享空间 AWS CLI 的附加图像。
aws sagemaker describe-domain \ --domain-id
<d-xxxxxxxxxxxx>