本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
附上自定义 SageMaker 图片
重要
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。之所以需要为资源添加标签的权限,是因为 Studio 和 Studio Classic 会自动为创建的任何资源添加标签。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记,则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息,请参阅 提供标记 A SageMaker I 资源的权限。
AWS 亚马逊 A SageMaker I 的托管策略授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。
本指南介绍如何使用 AI 控制台或 AWS Command Line Interface (AWS CLI) 将自定义 RStudio 映像附加到您的 Amazon SageMaker A SageMaker I 域。
要使用自定义 SageMaker 镜像,您必须将自定义 RStudio 镜像附加到您的网域。附加映像版本时,它会显示在 RStudio Launcher 中,并可以在选择映像下拉列表中找到。您可以使用下拉列表更改 RStudio 所用的映像。
可以附加的映像版本数量是有限的。达到限制后,必须先分离一个版本才能附加映像的另一个版本。
使用管理控制台将映像版本附加到域
您可以使用 SageMaker AI 控制台的控制面板将自定义 SageMaker 图像版本附加到您的网域。您也可以创建自定义 SageMaker 映像和图像版本,然后将该版本附加到您的域中。
附加现有映像
-
打开 Amazon A SageMaker I 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
在左侧导航窗格中,选择管理员配置。
-
在管理员配置下,选择域。
-
选择所需的域。
-
选择环境。
-
在附加到域名的自定义 SageMaker Studio Classic 图像下,选择附加图片。
-
对于映像源,选择现有映像或新映像。
如果您选择 “现有图片”,请从 Amazon SageMaker 图片库中选择一张图片。
如果选择新映像,请提供 Docker 映像的 Amazon ECR 注册表路径。路径必须与域位于相同 AWS 区域 中。Amazon ECR 存储库必须与您的域名位于同一个账户中,或者必须启用 SageMaker AI 的跨账户权限。
-
从列表中选择现有映像。
-
从列表中选择映像的版本。
-
选择下一步。
-
输入映像名称、映像显示名称和描述的值。
-
选择 IAM 角色。有关更多信息,请参阅 创建自定义 RStudio 映像。
-
(可选)为映像添加标签。
-
(可选)选择添加新标签,然后添加配置标签。
-
对于映像类型,选择 RStudio 映像。
-
选择提交。
等待映像版本附加到域。版本附加后,将显示在自定义映像列表中,并短暂高亮显示。
使用将现有图像版本附加到您的网域 AWS CLI
可使用 AWS CLI,通过两种方法将映像版本附加到域。第一种方法是,使用附加的版本创建一个新域。此方法更简单,但是必须指定创建域所需的 Amazon Virtual Private Cloud (Amazon VPC) 信息和执行角色。
如果您已经加入域,则可以使用第二种方法将映像版本附加到当前域。在这种情况下,您无需指定 Amazon VPC 信息和执行角色。附加版本后,必须删除域中的所有应用程序并重新启动 RStudio。
将 SageMaker 图像附加到新域名
要使用此方法,必须指定附加了AmazonSageMakerFullAccess
使用以下步骤创建域并附加自定义 A SageMaker I 镜像:
获取默认 VPC ID 和子网 ID。
为域创建配置文件,该文件指定映像。
使用配置文件创建域。
将自定义 SageMaker 图片添加到您的网域
-
获取默认 VPC ID。
aws ec2 describe-vpcs \ --filters Name=isDefault,Values=true \ --query "Vpcs[0].VpcId" --output text响应:
vpc-xxxxxxxx -
使用上一步中的 VPC ID 获取默认子网 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的配置文件。插入在前面的步骤中获取的 VPC ID、子网 ID、ImageName和AppImageConfigName。由于未指定ImageVersionNumber,因此将使用映像的最新版本,也是本例中唯一的版本。执行角色必须满足满足先决条件中的要求。{ "DomainName": "domain-with-custom-r-image", "VpcId": "<vpc-id>", "SubnetIds": [ "<subnet-ids>" ], "DomainSettings": { "RStudioServerProDomainSettings": { "DomainExecutionRoleArn": "<execution-role>" } }, "DefaultUserSettings": { "ExecutionRole": "<execution-role>", "RSessionAppSettings": { "CustomImages": [ { "AppImageConfigName": "rstudio-custom-config", "ImageName": "rstudio-custom-image" } ] } }, "AuthMode": "IAM" } -
使用所附的自定义 SageMaker 图片创建域名。
aws sagemaker create-domain \ --cli-input-json file://create-domain-input.json响应:
{ "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id", "Url": "https://domain-id.studio.region.sagemaker.aws/..." }
将 SageMaker 图像附加到现有网域
此方法假定您已加入域。有关更多信息,请参阅 亚马逊 SageMaker AI 域名概述。
注意
您必须删除域中的所有应用程序,才能使用新的映像版本更新该域。有关删除应用程序的信息,请参阅删除亚马逊 A SageMaker I 域名。
使用以下步骤将 SageMaker 图片添加到您当前的域名。
DomainID从 A SageMaker I 控制台获取。使用
DomainID获取域的DefaultUserSettings。将
ImageName和AppImageConfig作为CustomImage添加到DefaultUserSettings。更新域以包含自定义映像。
将自定义 SageMaker 图片添加到您的网域
-
打开 Amazon A SageMaker I 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
在左侧导航窗格中,选择管理员配置。
-
在管理员配置下,选择域。
-
选择所需的域。
-
选择域设置。
-
在常规设置下,找到域 ID。ID 的格式如下:
d-xxxxxxxxxxxx。 -
使用域 ID 获取域的描述。
aws sagemaker describe-domain \ --domain-id<d-xxxxxxxxxxxx>响应:
{ "DomainId": "d-xxxxxxxxxxxx", "DefaultUserSettings": { "KernelGatewayAppSettings": { "CustomImages": [ ], ... } } } -
将响应的
DefaultUserSettings部分保存到名为update-domain-input.json的文件中。 -
插入前面步骤中的
ImageName和AppImageConfigName作为自定义映像。由于未指定ImageVersionNumber,因此将使用映像的最新版本,也是本例中唯一的版本。{ "DefaultUserSettings": { "RSessionAppSettings": { "CustomImages": [ { "ImageName": "rstudio-custom-image", "AppImageConfigName": "rstudio-custom-config" } ] } } } -
使用域 ID 和默认用户设置文件更新域。
aws sagemaker update-domain \ --domain-id<d-xxxxxxxxxxxx>\ --cli-input-json file://update-domain-input.json响应:
{ "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id" } -
删除
RStudioServerPro应用程序。必须重新启动RStudioServerPro域共享应用程序,RStudio Launcher 用户界面才能获得最新的更改。aws sagemaker delete-app \ --domain-id<d-xxxxxxxxxxxx>--user-profile-name domain-shared \ --app-type RStudioServerPro --app-name default -
创建新的
RStudioServerPro应用程序。必须使用 AWS CLI创建此应用程序。aws sagemaker create-app \ --domain-id<d-xxxxxxxxxxxx>--user-profile-name domain-shared \ --app-type RStudioServerPro --app-name default