

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

# 將映像上傳至 Amazon Elastic Container Registry
<a name="ml-uploading-your-images"></a>

建立推論和訓練映像之後，您可以將它們上傳至 Amazon Elastic Container Registry。[Amazon ECR](https://aws.amazon.com/ecr/)  是全受管 Docker 登錄檔。 Amazon SageMaker AI 會從 Amazon ECR 提取映像，以建立用於推論的模型套件或訓練任務的演算法。 AWS Marketplace 也會從 Amazon ECR 擷取這些映像，以發佈模型套件和演算法產品。本主題提供將推論和訓練映像上傳至 Amazon ECR 的逐步解說

**Topics**
+ [我需要上傳哪些影像？](#ml-which-images-must-i-upload)
+ [需要哪些 IAM 許可？](#ml-what-iam-permissions-are-required)
+ [將您的 Docker 用戶端登入 AWS](#ml-log-in-your-docker-client)
+ [建立儲存庫並上傳映像](#ml-create-repository-and-upload-image)
+ [掃描上傳的映像](#ml-scan-your-uploaded-image)

## 我需要上傳哪些影像？
<a name="ml-which-images-must-i-upload"></a>

 如果您要發佈模型套件，請僅上傳推論映像。如果您要發佈演算法，請同時上傳推論影像和訓練影像。如果推論和訓練映像已合併，則僅上傳合併映像一次。

## 需要哪些 IAM 許可？
<a name="ml-what-iam-permissions-are-required"></a>

 下列步驟假設本機電腦具有賣方中 AWS Identity and Access Management (IAM) 角色或使用者的正確 AWS 登入資料 AWS 帳戶。角色或使用者必須同時為 AWS Marketplace 和 Amazon ECR 設定正確的政策。例如，您可以使用下列 AWS 受管政策：
+  [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSMarketplaceSellerProductsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSMarketplaceSellerProductsFullAccess.html) – 用於存取 AWS Marketplace 
+  [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryFullAccess.html) – 用於存取 Amazon ECR 

**注意**  
這些連結會帶您前往 *AWS 受管政策參考*。

## 將您的 Docker 用戶端登入 AWS
<a name="ml-log-in-your-docker-client"></a>

 為您要從中發佈 AWS 區域 的 設定變數 （請參閱 [支援 AWS 區域 發佈](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing))。在此範例中，請使用美國東部 （俄亥俄） 區域。

```
region=us-east-2
```

 執行下列命令，以您的 AWS 帳戶 ID 設定變數。此範例假設 current AWS Command Line Interface (AWS CLI) 登入資料屬於賣方的 AWS 帳戶。

```
account=$(aws sts get-caller-identity --query Account --output text)
```

 若要使用您區域的 AWS 帳戶 Amazon ECR Docker 登錄檔來驗證 Docker CLI 用戶端，請執行下列命令。

```
aws ecr get-login-password \
--region ${region} \
| sudo docker login \
--username AWS \
--password-stdin \
${account}.dkr.ecr.${region}.amazonaws.com
```

## 建立儲存庫並上傳映像
<a name="ml-create-repository-and-upload-image"></a>

 為上傳影像的標籤設定變數，並為上傳影像儲存庫的名稱設定另一個變數。

```
image=my-inference-image
repo=my-inference-image
```

**注意**  
 在本指南先前建置推論和訓練影像的章節中，它們分別標記為 **my-inference-image** 和 **my-training-image**。在此範例中，建立推論映像並將其上傳至同名的儲存庫。

 執行下列命令以在 Amazon ECR 中建立映像儲存庫。

```
aws ecr --region ${region} create-repository --repository-name "${repo}"
```

 Amazon ECR 儲存庫位置的完整名稱由下列部分組成： ` <account-id>.dkr.ecr.<region>.amazonaws.com/<image-repository-name>`

 若要將映像推送至儲存庫，您必須使用儲存庫位置的完整名稱來標記映像。

 為映像儲存庫位置的完整名稱以及 `latest`標籤設定變數。

```
fullname="${account}.dkr.ecr.${region}.amazonaws.com/${repo}:latest"
```

 使用完整名稱標記映像。

```
sudo docker tag ${image} ${fullname}
```

 最後，將推論映像推送至 Amazon ECR 中的儲存庫。

```
sudo docker push ${fullname}
```

 上傳完成後，映像會出現在您發佈所在區域中[的 Amazon ECR 主控台儲存庫清單中](https://console.aws.amazon.com/ecr/repositories?region=us-east-2) 。在先前的範例中，映像已推送到美國東部 （俄亥俄） 區域的儲存庫。

## 掃描上傳的映像
<a name="ml-scan-your-uploaded-image"></a>

 在 [Amazon ECR 主控台](https://console.aws.amazon.com/ecr/repositories?region=us-east-2)中，選擇您要從中發佈 AWS 區域 的 ，然後開啟上傳映像的儲存庫。選取您上傳的映像，並開始掃描以檢查已知漏洞。 會在發佈前 AWS Marketplace 檢查 Amazon SageMaker AI 資源中所用容器映像的 Amazon ECR 掃描結果。您必須先修正具有嚴重或高嚴重性漏洞的容器映像，才能建立產品。

 成功掃描映像之後，即可用來建立模型套件或演算法資源。

如果您認為您的產品在掃描中有誤報的錯誤，請聯絡 [AWS Marketplace 賣方營運](https://aws.amazon.com/marketplace/management/contact-us)團隊，並提供錯誤的相關資訊。

 **後續步驟** 
+  請參閱 中的大小限制 [建立機器學習產品的需求和最佳實務](ml-listing-requirements-and-best-practices.md) 
+  繼續前往 [建立 Amazon SageMaker AI 資源](ml-creating-your-amazon-sagemaker-resource.md) 