本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
附上自定义 SageMaker 图片
重要
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。需要向资源添加标签的权限,因为 Studio 和 Studio Classic 会自动标记他们创建的任何资源。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记,则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息,请参阅 提供标记 SageMaker资源的权限。
AWS Amazon 托管政策 SageMaker授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。
本指南介绍如何使用 SageMaker控制台或 AWS Command Line Interface (AWS CLI) 将自定义 RStudio 映像附加到您的 Amazon SageMaker 域名。
要使用自定义 SageMaker 镜像,您必须将自定义 RStudio 镜像附加到您的网域。附加映像版本时,它会显示在 RStudio Launcher 中,并可以在选择映像下拉列表中找到。您可以使用下拉列表更改 RStudio 所用的映像。
可以附加的映像版本数量是有限的。达到限制后,必须先分离一个版本才能附加映像的另一个版本。
使用控制台将图像版本附加到您的网域
您可以使用控制台的 SageMaker 控制面板将自定义 SageMaker 图像版本附加到您的域中。您也可以创建自定义 SageMaker 映像和图像版本,然后将该版本附加到您的域中。
附加现有映像
-
打开亚马逊 SageMaker 控制台,网址为 https://console.aws.amazon.com/sagemaker/
。 -
在左侧导航窗格中,选择管理员配置。
-
在管理员配置下,选择域。
-
选择所需的域。
-
选择环境。
-
在附加到域名的自定义 SageMaker Studio Classic 图像下,选择附加图片。
-
对于映像源,选择现有映像或新映像。
如果您选择 “现有图片”,请从 Amazon SageMaker 图片库中选择一张图片。
如果选择新映像,请提供 Docker 映像的 Amazon ECR 注册表路径。路径必须与域 AWS 区域 相同。Amazon ECR 存储库必须与您的域名位于同一个账户中,或者 SageMaker 必须启用跨账户权限。
-
从列表中选择现有映像。
-
从列表中选择映像的版本。
-
选择下一步。
-
输入映像名称、映像显示名称和描述的值。
-
选择 IAM 角色。有关更多信息,请参阅 创建自定义 RStudio 映像。
-
(可选)为映像添加标签。
-
(可选)选择添加新标签,然后添加配置标签。
-
对于映像类型,选择 RStudio 映像。
-
选择提交。
等待映像版本附加到域。版本附加后,将显示在自定义映像列表中,并短暂高亮显示。
使用将现有图像版本附加到您的网域 AWS CLI
提供了两种使用将图像版本附加到您的域名的方法 AWS CLI。在第一种方法中,您创建一个附加版本的新域。此方法更简单,但您必须指定创建域所需的亚马逊虚拟私有云(Amazon VPC)信息和执行角色。
如果您已经加入域名,则可以使用第二种方法将图像版本附加到当前域中。在这种情况下,您无需指定 Amazon VPC 信息和执行角色。附加版本后,删除您域中的所有应用程序并重新启动 RStudio。
将 SageMaker 图像附加到新域名
要使用此方法,必须指定附加了AmazonSageMakerFullAccess
使用以下步骤创建域并附加自定义 SageMaker映像:
获取默认 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 图像附加到现有网域
此方法假设您已经注册了域名。有关更多信息,请参阅 Amazon SageMaker 域名概述。
注意
您必须删除域中的所有应用程序,才能使用新的映像版本更新域名。有关删除应用程序的信息,请参阅删除亚马逊 SageMaker 域名。
使用以下步骤将 SageMaker 图片添加到您当前的域名。
DomainID
从 SageMaker 主机上获取。使用
DomainID
获取域的DefaultUserSettings
。将
ImageName
和AppImageConfig
作为CustomImage
添加到DefaultUserSettings
。更新域以包含自定义映像。
将自定义 SageMaker 图片添加到您的网域
-
打开亚马逊 SageMaker 控制台,网址为 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