

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 完成先決條件
<a name="async-inference-create-endpoint-prerequisites"></a>

下列主題說明在建立非同步端點之前，您必須先完成的先決條件。這些先決條件包括正確存放模型成品、設定具有正確許可的 AWS IAM，以及選取容器映像。

**符合先決條件**

1. **為 Amazon SageMaker AI 建立 IAM 角色。**

   非同步推論需要存取 Amazon S3 儲存貯體 URI。為了達成此目的，請建立可執行 SageMaker AI 並具有存取許可，可存取 Amazon S3 和 Amazon SNS 的 IAM 角色。使用此角色，SageMaker AI 可以在您的帳戶下執行，並存取您的 Amazon S3 儲存貯體和 Amazon SNS 主題。

   您可以使用 IAM 主控台 適用於 Python (Boto3) 的 AWS SDK或 建立 IAM 角色 AWS CLI。以下範例說明如何建立 IAM 角色，並將必要政策連接到 IAM 主控台。

   1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

   1. 在 IAM 主控台的導覽窗格中，選擇**角色**，然後選擇**建立角色**。

   1. 對於 **Select type of trusted entity (選取信任的實體類型)**，選擇 **AWS service ( 服務)**。

   1. 選擇您想要允許擔任此角色的服務。在這種情況下，請選擇 **SageMaker AI**。然後選擇**下一步：許可**。
      + 這會自動建立 IAM 政策，以授予相關服務的存取權，例如 Amazon S3、亞馬遜 ECR 和雲觀察 CloudWatch Logs。

   1. 選擇 **下一步：標籤**。

   1. (選用) 藉由連接標籤做為鍵值對，將中繼資料新增至角色。如需在 IAM 中使用標籤的詳細資訊，請參閱[標記 IAM 資源](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_tags.html)。

   1. 選擇**下一步：檢閱**。

   1. 輸入**角色名稱**。

   1. 如有可能，請輸入角色名稱或角色名稱後綴。您 AWS 帳戶中的角色名稱必須是唯一的。它們不依大小寫區分。例如，您無法建立名為 `PRODROLE` 和 `prodrole` 的角色。由於其他 AWS 資源可能會參考角色，因此您無法在建立角色之後編輯角色的名稱。

   1. (選用) 針對 **Role description (角色說明)**，輸入新角色的說明。

   1. 檢閱角色，然後選擇**建立角色**。

      請記下 SageMaker AI 角色 ARN。若要使用主控台尋找角色 ARN，請執行下列步驟：

      1. 移至 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

      1. 選擇**角色**。

      1. 在搜尋欄位中輸入角色名稱，搜尋您剛建立的角色。

      1. 設定角色。

      1. 角色 ARN 位於**總結**頁面的頂端。

1. **將 Amazon SageMaker AI、Amazon S3 和 Amazon SNS 許可新增至您的 IAM 角色。**

   建立角色後，將 SageMaker AI、Amazon S3 和 Amazon SNS 許可 (選用) 授權予您的 IAM 角色。

   在 IAM 主控台，選擇**角色**。在**搜尋**欄位中輸入角色名稱，以搜尋您建立的角色。

   1. 選擇您的角色。

   1. 接著，選擇**連接政策**。

   1. Amazon SageMaker 非同步推論需要許可才能執行下列動作：`"sagemaker:CreateModel"`、`"sagemaker:CreateEndpointConfig"`、`"sagemaker:CreateEndpoint"`和 `"sagemaker:InvokeEndpointAsync"`。

      這些動作包含在 `AmazonSageMakerFullAccess` 政策中。將此政策新增至您的 IAM 角色。在**搜尋**欄位中搜尋 `AmazonSageMakerFullAccess`。選取 `AmazonSageMakerFullAccess`。

   1. 選擇**連接政策**。

   1. 接著，選擇**連接政策**以新增 Amazon S3 許可。

   1. 選取**建立政策**。

   1. 選取 `JSON` 標籤。

   1. 新增下列政策聲明：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:AbortMultipartUpload",
                      "s3:ListBucket"  
                  ],
                  "Effect": "Allow",
                  "Resource": "arn:aws:s3:::bucket_name/*"
              }
          ]
      }
      ```

------

   1. 選擇下**一步：標籤**。

   1. 輸入**政策名稱**。

   1. 選擇**建立政策**。

   1. 重複您剛完成的相同步驟新增 Amazon S3 許可，以新增 Amazon SNS 許可。對於政策聲明，請連接以下項目：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Action": [
                      "sns:Publish"
                  ],
                  "Effect": "Allow",
      "Resource": "arn:aws:sns:us-east-1:111122223333:SNS_Topic"
              }
          ]
      }
      ```

------

1. **將您的推論資料 (例如機器學習模型、範例資料) 上傳到 **Amazon S3**。**

1. **選取一個預先建立的 Docker 推論影像，或建立您自己的推論 Docker 映像。**

   SageMaker AI 為一些最常見的機器學習架構，例如 Apache MXNet、TensorFlow、PyTorch 和 Chainer 等，提供內建演算法和預先建置的 Docker 映像容器。有關可用 SageMaker AI 圖像的完整清單，請參閱[可用的深度學習容器映像](https://github.com/aws/deep-learning-containers/blob/master/available_images.md)。如果您選擇使用 SageMaker AI 提供的容器，您可以透過在容器中設定環境變數，將端點逾時和承載大小從預設值增加。要了解如何為每個架構設定不同的環境變數，請參閱建立一個非同步端點中的建立模型步驟。

   如果現有的 SageMaker AI 容器都不符合您的需求，而且您沒有自己的現有容器，則可能需要建立新的 Docker 容器。請參閱[具有自訂推論程式碼的容器](your-algorithms-inference-main.md)，瞭解如何建立 Docker 映像的資訊。

1. **建立一個 Amazon SNS 主題 (選用) **

   建立一個 Amazon Simple Notification Service (Amazon SNS) 主題，以傳送已完成處理請求的通知。Amazon SNS 是面向消息的應用程式的通知服務，多個訂閱者通過一系列傳輸協議 (包括 HTTP、Amazon SQS 和電子郵件) 請求和接收時間關鍵性消息的 “推送” 通知。當您使用 `EndpointConfig` API 指定 `AsyncInferenceConfig` 時，您可以在建立 `EndpointConfig` 物件時指定 Amazon SNS 主題。

   按照步驟建立並訂閱 Amazon SNS 主題。

   1. 使用 Amazon SNS 主控台建立一個主題。如需說明，請參閱 *Amazon 簡便通知服務**開發人員指南*中的[建立 Amazon SNS 主題](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。

   1. 訂閱此主題。如需指示，請參閱 *Amazon 簡便通知服務**開發人員指南*中的[訂閱 Amazon SNS 主題](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)。

   1. 當您收到要求您確認訂閱主題的電子郵件時，請確認訂閱。

   1. 請記下主題的 Amazon Resource Name (ARN)。您建立的 Amazon SNS 主題是您 AWS 帳戶中的另一個資源，並且具有唯一的 ARN。ARN 的格式如下：

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

   如需 Amazon SNS 主題的更多相關資訊，請參閱 [Amazon SNS 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)。