本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
先决条件
要使用异步终端节点,请首先确保满足这些先决条件。
-
为 Amazon SageMaker 创建 IAM 角色。
异步推理需要访问 Amazon S3 存储桶 URI。为了实现这一点,请创建一个 IAM 角色,该角色可以运行 SageMaker 并有权访问 Amazon S3 和 Amazon SNS。使用此角色,SageMaker 可以在您的账户下运行并访问您的 Amazon S3 存储桶和 Amazon SNS 主题。
您可以使用 IAM 控制台创建 IAM 角色,Amazon SDK for Python (Boto3),或者Amazon CLI. 以下是如何创建 IAM 角色并使用 IAM 控制台附加必要的策略的示例。
登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在 IAM 控制台的导航窗格中,选择 Roles,然后选择 Create role。
-
对于选择受信任实体的类型,选择 Amazon 服务。
-
选择您希望允许其承担此角色的服务。在本例中,选择SageMaker. 接下来,选择 Next (下一步):Permissions (下一步:权限)。
-
这会自动创建 IAM 策略,该策略授予对 Amazon S3、Amazon ECR 和 CloudWatch Logs 等相关服务的访问权限。
-
-
选择 Next:。标签。
-
(可选)通过以键值对的形式附加标签来向角色添加元数据。有关将在 IAM 中使用标签的更多信息,请参阅 Tagging IAM resources(标记 IAM 资源)。
-
选择 Next:。审核。
-
输入Role name (角色名称).
-
如果可能,键入角色名称或角色名称后缀。角色名称在您的 Amazon 账户内必须是唯一的。名称不区分大小写。例如,您无法同时创建名为
PRODROLE和prodrole的角色。由于其他 Amazon 资源可能引用该角色,角色创建完毕后无法编辑角色名称。 -
(可选) 对于 Role description,键入新角色的描述。
-
检查角色,然后选择 Create role。
请注意 SageMaker 角色 ARN。要使用控制台查找角色 ARN,请执行以下操作:
-
转到 IAM 控制台:https://console.aws.amazon.com/iam/
-
Select角色.
-
通过在搜索字段中键入角色的名称,搜索刚才创建的角色。
-
选择角色。
-
角色 ARN 位于摘要页.
-
-
将 Amazon SageMaker、Amazon S3 和 Amazon SNS 权限添加到您的 IAM 角色。
创建角色后,向您的 IAM 角色授予 SageMaker、Amazon S3 以及可选的 Amazon SNS 权限。
选择角色在 IAM 控制台中。通过在搜索字段中返回的子位置类型。
选择你的角色。
下一步,选择附加策略.
-
Amazon SageMaker 异步推理需要权才能执行以下操作:
"sagemaker:CreateModel"、"sagemaker:CreateEndpointConfig"、"sagemaker:CreateEndpoint", 和"sagemaker:InvokeEndpointAsync".这些操作包含在
AmazonSageMakerFullAccess政策。将此策略添加到您的 IAM 角色。搜索AmazonSageMakerFullAccess中的搜索字段中返回的子位置类型。SelectAmazonSageMakerFullAccess. 选择 Attach policy(附上策略)。
下一步,选择附加策略以添加 Amazon S3 权限。
Select创建策略.
选择
JSON选项卡。添加以下策略语句:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket_name/*" } ] }选择 Next:。标签。
输入策略名称.
选择 Create policy(创建策略)。
重复您完成的相同步骤以添加 Amazon S3 权限以添加 Amazon 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 为其内置算法提供了容器,并为一些最常见的机器学习框架提供了预构建的 Docker 映像,如 Apache MXNet、TensorFlow、PyTorch 和 Chainer。有关可用 SageMaker 映像的完整列表,请参阅可用的 Deep Learning Containers 映像
. 如果现有的 SageMaker 容器都不能满足您的需求,并且您没有自己的现有容器,则可能需要创建一个新的 Docker 容器。请参阅使用您自己的推理代码了解有关如何创建 Docker 映像的信息。
-
创建 Amazon SNS 主题(可选)
创建 Amazon Simple Notification Service (Amazon SNS) 主题,用于发送有关已完成处理的请求的通知。Amazon SNS 是面向消息的应用程序的通知服务,多个订阅者通过各种传输协议(包括 HTTP、Amazon SQS 和电子邮件)请求和接收时间关键型消息的 “推送” 通知。您可以在创建
EndpointConfig指定时的对象AsyncInferenceConfig使用EndpointConfigAPI。按照以下步骤创建并订阅 Amazon SNS 主题。
-
使用 Amazon SNS 控制台创建主题。有关说明,请参阅创建 Amazon SNS 主题中的Amazon Simple Notification Service 开发人员指南.
订阅至主题。有关说明,请参阅订阅 Amazon SNS 主题中的Amazon Simple Notification Service开发人员指南.
-
当您收到要求您确认订阅该主题的电子邮件时,请确认订阅。
记下主题的 Amazon 资源名称 (ARN)。您创建的 Amazon SNS 主题是您的Amazon账户,它有唯一的 ARN。ARN 采用以下格式:
arn:aws:sns:aws-region:account-id:topic-name
有关 Amazon SNS 的更多信息,请参阅Amazon SNS 开发人员指南.
-