完成先决条件 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

完成先决条件

以下主题描述了在创建异步端点之前必须完成的先决条件。这些先决条件包括正确存储模型构件、 AWS IAM使用正确的权限配置和选择容器映像。

要完成先决条件
  1. 为 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控制台附加必要策略的示例。

    1. 登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

    2. 在IAM控制台的导航窗格中,选择角色,然后选择创建角色

    3. 对于Select type of trusted entity(选择受信任实体的类型),选择 AWS service(服务)

    4. 选择您希望允许其承担此角色的服务。在这种情况下,请选择SageMaker。然后选择下一步:权限

      • 这会自动创建一项IAM策略,授予访问相关服务(例如 Amazon S3、Amaz ECR on 和 CloudWatch 日志)的权限。

    5. 选择下一步:标签

    6. (可选)通过以键值对的形式附加标签来向角色添加元数据。有关在中使用标签的更多信息IAM,请参阅为IAM资源添加标签

    7. 选择下一步:审核

    8. 角色名称中键入角色名称。

    9. 如果可能,键入角色名称或角色名称后缀。在您的 AWS 账户中,角色名称必须是唯一的。名称不区分大小写。例如,您无法同时创建名为 PRODROLEprodrole 的角色。由于其他 AWS 资源可能会引用该角色,因此您无法在角色创建后对其名称进行编辑。

    10. (可选) 对于 Role description,键入新角色的描述。

    11. 检查角色,然后选择创建角色

      注意这个 SageMaker 角色ARN。要ARN使用控制台查找角色,请执行以下操作:

      1. 转到IAM控制台:https://console.aws.amazon.com/iam/

      2. 选择角色

      3. 在搜索字段中键入角色的名称,搜索您刚刚创建的角色。

      4. 选择角色。

      5. 该角色位ARN于 “摘要” 页面的顶部。

  2. 将亚马逊 SageMaker、亚马逊 S3 和亚马逊SNS权限添加到您的IAM角色中。

    创建角色后,向您的IAM角色授予 SageMaker Amazon S3 权限,也可以授予 Amazon SNS 权限。

    在IAM控制台中选择 “角色”。通过在搜索字段中键入角色名称来搜索您创建的角色。

    1. 选择您的角色。

    2. 接下来选择附加策略

    3. Amazon SageMaker 异步推理需要权限才能执行以下操作:"sagemaker:CreateModel""sagemaker:CreateEndpointConfig""sagemaker:CreateEndpoint"、和。"sagemaker:InvokeEndpointAsync"

      这些操作包含在 AmazonSageMakerFullAccess 策略中。将此政策添加到您的IAM角色中。在搜索字段中搜索 AmazonSageMakerFullAccess。选择 AmazonSageMakerFullAccess

    4. 选择附加策略

    5. 接下来选择附加策略以添加 Amazon S3 权限。

    6. 选择创建策略

    7. 选择 JSON 选项卡。

    8. 添加以下策略语句:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket_name/*" } ] }
    9. 选择下一步:标签

    10. 键入策略名称

    11. 选择创建策略

    12. 重复您完成的相同步骤,添加 Amazon S3 权限以添加亚马逊SNS权限。对于策略声明,请附加以下内容:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:<region>:<Account_ID>:<SNS_Topic>" } ] }
  3. 将您的推理数据(例如机器学习模型、示例数据)上传到 Amazon S3

  4. 选择预构建的 Docker 推理映像或创建自己的推理 Docker 映像。

    SageMaker 为其内置算法提供了容器,并为一些最常见的机器学习框架(例如 Apache MXNet、、和 Chainer)提供了预构建的 Docker 镜像。 TensorFlow PyTorch有关可用 SageMaker图像的完整列表,请参阅可用的 Deep Learning Containers 镜像。如果您选择使用 SageMaker 提供的容器,则可以通过在容器中设置环境变量来增加端点超时和有效负载大小,使其与默认值相比有所增加。要了解如何为每个框架设置不同的环境变量,请参阅“创建异步端点”中的“创建模型”步骤。

    如果现有 SageMaker 容器都不能满足您的需求,并且您没有自己的现有容器,则可能需要创建一个新的 Docker 容器。有关如何创建 Docker 映像的信息,请参阅带有自定义推理代码的容器

  5. 创建 Amazon SNS 主题(可选)

    创建亚马逊简单通知服务 (AmazonSNS) 主题,用于发送有关已完成处理的请求的通知。Amazon SNS 是一项面向消息传递的应用程序的通知服务,多个订阅者通过多种传输协议(包括 A HTTP ma SQS zon 和电子邮件)请求和接收时间紧迫消息的 “推送” 通知。AsyncInferenceConfig使用指定对象时,您可以在创建EndpointConfig对象时指定 Amazon SNS 主题EndpointConfigAPI。

    按照步骤创建和订阅 Amazon SNS 主题。

    1. 使用 Amazon SNS 控制台创建主题。有关说明,请参阅《亚马逊简单通知服务开发者指南》中的创建亚马逊SNS主题

    2. 订阅至主题。有关说明,请参阅《亚马逊简单通知服务开发者指南》中的订阅亚马逊SNS主题

    3. 当您收到要求确认订阅主题的电子邮件时,请确认订阅。

    4. 请注意主题 Amazon 资源名称 (ARN)。您创建的 Amazon SNS 主题是您 AWS 账户中的另一种资源,它具有唯一性ARN。ARN采用以下格式:

      arn:aws:sns:aws-region:account-id:topic-name

    有关亚马逊的更多信息SNS,请参阅《亚马逊SNS开发者指南》