本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
完成先决条件
以下主题描述了在创建异步端点之前必须完成的先决条件。这些先决条件包括正确存储模型构件、 AWS IAM使用正确的权限配置和选择容器映像。
要完成先决条件
-
为 Amazon 创建IAM角色 SageMaker。
异步推理需要访问您的 Amazon S3 存储桶URI。为便于执行此操作,请创建一个可以运行 SageMaker 并有权访问 Amazon S3 和 Amazon 的IAM角色SNS。使用此角色, SageMaker 可以在您的账户下运行并访问您的 Amazon S3 存储桶和亚马逊SNS主题。
您可以使用IAM控制台 AWS SDK for Python (Boto3)、或来创建IAM角色 AWS CLI。以下是如何创建IAM角色并向IAM控制台附加必要策略的示例。
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在IAM控制台的导航窗格中,选择角色,然后选择创建角色。
-
对于Select type of trusted entity(选择受信任实体的类型),选择 AWS service(服务)。
-
选择您希望允许其承担此角色的服务。在这种情况下,请选择SageMaker。然后选择下一步:权限。
-
这会自动创建一项IAM策略,授予访问相关服务(例如 Amazon S3、Amaz ECR on 和 CloudWatch 日志)的权限。
-
-
选择下一步:标签。
-
(可选)通过以键值对的形式附加标签来向角色添加元数据。有关在中使用标签的更多信息IAM,请参阅为IAM资源添加标签。
-
选择下一步:审核。
-
在角色名称中键入角色名称。
-
如果可能,键入角色名称或角色名称后缀。在您的 AWS 账户中,角色名称必须是唯一的。名称不区分大小写。例如,您无法同时创建名为
PRODROLE
和prodrole
的角色。由于其他 AWS 资源可能会引用该角色,因此您无法在角色创建后对其名称进行编辑。 -
(可选) 对于 Role description,键入新角色的描述。
-
检查角色,然后选择创建角色。
注意这个 SageMaker 角色ARN。要ARN使用控制台查找角色,请执行以下操作:
-
转到IAM控制台:https://console.aws.amazon.com/iam/
-
选择角色。
-
在搜索字段中键入角色的名称,搜索您刚刚创建的角色。
-
选择角色。
-
该角色位ARN于 “摘要” 页面的顶部。
-
-
将亚马逊 SageMaker、亚马逊 S3 和亚马逊SNS权限添加到您的IAM角色中。
创建角色后,向您的IAM角色授予 SageMaker Amazon S3 权限,也可以授予 Amazon SNS 权限。
在IAM控制台中选择 “角色”。通过在搜索字段中键入角色名称来搜索您创建的角色。
选择您的角色。
接下来选择附加策略。
-
Amazon SageMaker 异步推理需要权限才能执行以下操作:
"sagemaker:CreateModel"
、"sagemaker:CreateEndpointConfig"
"sagemaker:CreateEndpoint"
、和。"sagemaker:InvokeEndpointAsync"
这些操作包含在
AmazonSageMakerFullAccess
策略中。将此政策添加到您的IAM角色中。在搜索字段中搜索AmazonSageMakerFullAccess
。选择AmazonSageMakerFullAccess
。 选择附加策略。
接下来选择附加策略以添加 Amazon S3 权限。
选择创建策略。
选择
JSON
选项卡。添加以下策略语句:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::
bucket_name/*
" } ] }选择下一步:标签。
键入策略名称。
选择创建策略。
重复您完成的相同步骤,添加 Amazon S3 权限以添加亚马逊SNS权限。对于策略声明,请附加以下内容:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:
<region>:<Account_ID>:<SNS_Topic>
" } ] }
-
将您的推理数据(例如机器学习模型、示例数据)上传到 Amazon S3。
-
选择预构建的 Docker 推理映像或创建自己的推理 Docker 映像。
SageMaker 为其内置算法提供了容器,并为一些最常见的机器学习框架(例如 Apache MXNet、、和 Chainer)提供了预构建的 Docker 镜像。 TensorFlow PyTorch有关可用 SageMaker图像的完整列表,请参阅可用的 Deep Learning Containers 镜像
。如果您选择使用 SageMaker 提供的容器,则可以通过在容器中设置环境变量来增加端点超时和有效负载大小,使其与默认值相比有所增加。要了解如何为每个框架设置不同的环境变量,请参阅“创建异步端点”中的“创建模型”步骤。 如果现有 SageMaker 容器都不能满足您的需求,并且您没有自己的现有容器,则可能需要创建一个新的 Docker 容器。有关如何创建 Docker 映像的信息,请参阅带有自定义推理代码的容器。
-
创建 Amazon SNS 主题(可选)
创建亚马逊简单通知服务 (AmazonSNS) 主题,用于发送有关已完成处理的请求的通知。Amazon SNS 是一项面向消息传递的应用程序的通知服务,多个订阅者通过多种传输协议(包括 A HTTP ma SQS zon 和电子邮件)请求和接收时间紧迫消息的 “推送” 通知。
AsyncInferenceConfig
使用指定对象时,您可以在创建EndpointConfig
对象时指定 Amazon SNS 主题EndpointConfig
API。按照步骤创建和订阅 Amazon SNS 主题。
-
使用 Amazon SNS 控制台创建主题。有关说明,请参阅《亚马逊简单通知服务开发者指南》中的创建亚马逊SNS主题。
订阅至主题。有关说明,请参阅《亚马逊简单通知服务开发者指南》中的订阅亚马逊SNS主题。
-
当您收到要求确认订阅主题的电子邮件时,请确认订阅。
请注意主题 Amazon 资源名称 (ARN)。您创建的 Amazon SNS 主题是您 AWS 账户中的另一种资源,它具有唯一性ARN。ARN采用以下格式:
arn:aws:sns:
aws-region:account-id:topic-name
有关亚马逊的更多信息SNS,请参阅《亚马逊SNS开发者指南》。
-