本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
重要
允许 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 资源的权限已经包括在创建这些资源时添加标签的权限。
本指南介绍如何使用 A SageMaker I 控制台或 AWS Command Line Interface (AWS CLI) 将自定义 RStudio 图像附加到您的 SageMaker Amazon AI 域。
要使用自定义 SageMaker AI 镜像,您必须将自定义 RStudio 镜像附加到您的网域。当您附加图像版本时,它会出现在 RStudio 启动器中,并显示在 “选择图像” 下拉列表中。您可以使用下拉列表来更改使用的图片 RStudio。
可以附加的映像版本数量是有限的。达到限制后,必须先分离一个版本才能附加映像的另一个版本。
使用管理控制台将映像版本附加到域
您可以使用 SageMaker AI 控制台的控制面板将自定义 SageMaker AI 映像版本附加到您的网域。您还可以创建自定义 A SageMaker I 镜像和镜像版本,然后将该版本附加到您的网域。
附加现有映像
-
打开 Amazon A SageMaker I 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
在左侧导航窗格中,选择管理员配置。
-
在管理员配置下,选择域。
-
选择所需的域。
-
选择环境。
-
在附加到域名的自定义 SageMaker Studio Classic 图像下,选择附加图片。
-
对于映像源,选择现有映像或新映像。
如果您选择现有图片,请从 Amazon A SageMaker I 图片库中选择一张图片。
如果选择新映像,请提供 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 AI 映像附加到新域
要使用此方法,必须指定附加了AmazonSageMakerFullAccess
使用以下步骤创建域并附加自定义 A SageMaker I 镜像:
获取您的默认 VPC ID 和子网 IDs。
为域创建配置文件,该文件指定映像。
使用配置文件创建域。
将自定义 A SageMaker I 镜像添加到您的网域
-
获取默认 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
的配置文件。插入之前步骤中的 VPC ID IDsImageName
、子网和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 AI 镜像创建网域。
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 AI 映像附加到现有域
此方法假定您已加入域。有关更多信息,请参阅 亚马逊 SageMaker AI 域名概述。
注意
您必须删除域中的所有应用程序,才能使用新的映像版本更新该域。有关删除应用程序的信息,请参阅删除亚马逊 A SageMaker I 域名。
使用以下步骤将 SageMaker AI 图像添加到您当前的域中。
DomainID
从 A SageMaker I 控制台获取。使用
DomainID
获取域的DefaultUserSettings
。将
ImageName
和AppImageConfig
作为CustomImage
添加到DefaultUserSettings
。更新域以包含自定义映像。
将自定义 A SageMaker I 镜像添加到您的网域
-
打开 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
域共享应用程序,La RStudio uncher UI 才能获得最新的更改。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