

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

# 在 上新增新版本的容器產品 AWS Marketplace
<a name="container-add-version"></a>

身為 AWS Marketplace 賣方，您可以新增容器產品的新版本、管理版本和更新版本資訊。您的產品在其生命週期內可能有多個版本。每個版本都有一組特定於該版本的容器映像。下列主題說明如何管理容器產品的產品版本。

**注意**  
您必須先建立產品 ID 和產品定價，才能將版本新增至您的產品。如需這些步驟的詳細資訊，請參閱 [步驟 1：為您的容器產品建立產品 ID 和產品代碼](container-product-getting-started.md#create-initial-container-product)。

**Topics**
+ [步驟 1：新增儲存庫](#add-repositories)
+ [步驟 2：將容器映像和成品上傳至儲存庫](#upload-resources)
+ [步驟 3：將新版本新增至您的容器產品](#add-new-version)
+ [步驟 4：更新版本資訊](#container-product-updating-version)
+ [限制 Amazon EKS 附加元件的版本](#restriciting-version-eks-addon)

## 步驟 1：新增儲存庫
<a name="add-repositories"></a>

您產品的容器映像和其他成品會存放在 的儲存庫中 AWS Marketplace。一般而言，您可以為每個所需的成品建立一個儲存庫，但儲存庫可以存放多個版本的成品 （具有不同的標籤）。

**注意**  
產品部署中的所有映像都必須使用來自 儲存庫的 AWS Marketplace 映像。

下列程序說明如何在 中新增任何所需的儲存庫 AWS Marketplace。

**新增儲存庫**

1. 登入 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/)。

1. 從**產品**功能表中選取**伺服器**。

1. 在**伺服器產品**索引標籤上，選取您要修改的產品，然後從**請求變更**下拉式清單中選擇**新增儲存庫**。

1. 輸入您要建立之儲存庫的名稱。如果您想要建立多個新儲存庫：
   + 為每個額外的**儲存庫選擇新增**儲存庫。
   + 提供唯一的名稱。您選擇的唯一名稱必須跨賣方帳戶中的所有產品。
**注意**  
儲存庫將具有此結構：`<repositoryID>.dkr.ecr.us-east-1.amazonaws.com/<sellerName>/<repositoryName>`。當您將項目新增至儲存庫時 （在下列程序中），它們會取得標籤並具有此結構：`<repositoryID>.dkr.ecr.us-east-1.amazonaws.com/<sellerName>/<repositoryName>:<tag>`。  
`repositoryID` 是 的內部 ID AWS Marketplace。
`sellerName` 是根據您為賣方帳戶建立的名稱。當您的賣方顯示名稱產生`sellerName`無效的儲存庫字首時，AWS Marketplace 會自動取代 UUID （通用唯一識別碼） 取代賣方名稱。若要變更儲存庫名稱中的 UUID 字首，請聯絡 AWS Marketplace 操作團隊。
在此步驟中`respositoryName`定義 。
當您將成品上傳到儲存庫時，`tag`會設定 。

1. 選取**提交**。

**注意**  
每個產品最多可以有 70 個儲存庫。

系統會建立新的請求，並顯示在**請求**索引標籤上。完成後，您可以在幾分鐘內開始將容器映像和其他成品新增至您建立的儲存庫。

## 步驟 2：將容器映像和成品上傳至儲存庫
<a name="upload-resources"></a>

**將容器映像和成品上傳至儲存庫**

1. 登入 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/)。

1. 從**產品**功能表中，選擇**伺服器**。

1. 在**伺服器產品**索引標籤上，選取您要修改的產品。

1. 從**請求變更**下拉式清單中選擇**新增儲存庫**。

1. 選擇**檢視現有的儲存庫**。

1. 選取您要上傳的儲存庫。

1. 選取**檢視推送命令**以開啟指示清單，包括可用來將Docker容器映像和Helm圖表推送至該儲存庫的命令。

   如需如何將容器映像和其他成品推送至儲存庫的一般資訊，請參閱《*Amazon Elastic Container Registry 使用者指南*》中的[推送映像](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push.html)。
**注意**  
您可以在呼叫 `docker pull`或 時使用下列 Amazon Elastic Container Registry (Amazon ECR) API 操作`docker push`：  
`DescribeImages` – 用來檢閱儲存庫中映像的相關中繼資料。
`GetAuthorizationToken` – 在將成品上傳到儲存庫之前，使用 進行驗證，然後使用 `docker pull`或 `docker push`命令。
`ListImages` – 使用 來檢視您推送的映像清單。

1. 使用列出的命令，將任何必要的成品從本機儲存庫推送至您產品的 AWS Marketplace 儲存庫。
**注意**  
**tag** 您在`push`命令中提供的 用於區分您上傳到儲存庫的成品版本。使用對成品所屬版本有意義的標籤。

1. 針對版本中所需的每個容器映像或成品重複此步驟。
**注意**  
您的版本在每個交付選項中最多可包含 50 個容器映像或成品。如需交付選項的詳細資訊，請參閱下列程序。

上傳成品之後，您就可以建立產品的版本。

**注意**  
您的容器映像會自動掃描，以查看是否符合 [的容器型產品需求 AWS Marketplace](container-product-policies.md)。如需詳細資訊，請參閱[容器產品掃描安全問題](container-product-getting-started.md#container-security)。

### 新增交付選項
<a name="add-delivery-option"></a>

每個版本的容器產品都需要一個交付選項。交付選項指定買方可用的部署選項。根據以下其中一個交付選項，您需要將適當的成品上傳到儲存庫。
+ 對於**容器映像**交付選項，請將產品安裝所需的所有容器映像上傳至 AWS Marketplace 主控台中建立的 Amazon Elastic Container Registry (Amazon ECR) 儲存庫。
+ 對於**Helm圖表**交付選項，請將Helm圖表和容器映像上傳到 AWS Marketplace 主控台中建立的 Amazon ECR 儲存庫。
+ 對於 **Amazon EKS 主控台附加元件**交付選項，請將Helm圖表和容器映像上傳到主控台中建立的 Amazon ECR 儲存庫 AWS Marketplace 。

## 步驟 3：將新版本新增至您的容器產品
<a name="add-new-version"></a>

**注意**  
如果您在將新版本新增至容器時收到任何錯誤，請參閱 *AWS Marketplace Catalog API 參考*中的[新增新版本非同步錯誤表格](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/container-products.html#container-add-version)。

**將新版本新增至您的容器產品**

1. 登入 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/)。

1. 從**產品**功能表中選擇**伺服器**。

1. 在**伺服器產品**索引標籤上，選取您要新增版本的產品。然後從**請求變更**下拉式清單中選擇**新增版本**。

1. 在**新增版本**頁面上，輸入您**版本的版本標題**和**版本備註**。

1. 輸入版本詳細資訊後，下一個步驟是新增交付選項。交付選項是一組指示和資訊，買方可用來從您的產品版本啟動軟體。交付選項稱為買方*履行選項*。
**注意**  
您的產品可以支援具有不同容器映像的多個平台 （例如 Kubernetes和 Ubuntu 部署）。您可以為每個客戶設定產品的方式建立一個交付選項，每個產品版本最多四個交付選項。

   1. 如果產品在其他版本中已有交付選項，您可以使用現有選項做為範本，將交付選項新增至新版本。在**交付選項**中，從清單中選擇您要新增的交付選項。您可以使用下列步驟中的指示來編輯 選項。

   1. 若要新增交付選項，請選擇**新增交付選項**。新增選項後，請依照下列步驟中的指示進行設定。

1. 選擇交付選項的交付方法。交付方法決定買方如何啟動您的軟體。
   + 對於**容器映像**交付選項，提供在主控台中建立的 Amazon Elastic Container Registry (Amazon ECR) 儲存庫中容器映像的 AWS Marketplace 路徑。買方使用容器映像路徑，透過直接將映像提取至其環境來啟動軟體。
   + 對於**Helm圖表**交付選項，提供在 AWS Marketplace 主控台中建立的 Amazon ECR 儲存庫中的Helm圖表路徑。買方會在其部署環境中安裝Helm圖表以啟動軟體。
   + 對於 **Amazon EKS 主控台附加元件**交付選項，提供在主控台中建立的 Amazon ECR 儲存庫中的Helm AWS Marketplace 圖表路徑。買方使用 Amazon EKS 主控台或原生 Amazon EKS 附加元件 APIs 安裝容器，以啟動軟體。如需詳細資訊，請參閱[來自 Amazon EKS 的可用 Amazon EKS 附加元件](https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html#workloads-add-ons-available-eks)。

   1. 若要新增**容器映像**交付選項，請執行下列步驟：

      1. 在**容器映像**中，將 Amazon ECR URL 新增至包含產品版本軟體的容器映像。

      1. 在**交付選項標題**和**部署選項描述**中，輸入此交付選項的標題和描述。

      1. 在**使用說明**中，輸入詳細資訊，以協助您的買方在啟動軟體後使用您的軟體。

      1. 在**支援的 服務**中，選取買方可以在其中啟動軟體的環境。

      1. 在**部署範本**中，新增買方可用來啟動軟體的資源。為每個範本輸入資源的標題和 URL。

   1. 若要新增**Helm圖表**交付選項，請執行下列步驟：

      1. 在**Helm圖表**中，將 Amazon ECR URL 新增至購買者將在其部署環境中安裝的Helm圖表，以啟動您的軟體。

      1. 在**容器映像**中，將 Amazon ECR URL 新增至包含產品版本軟體的容器映像。

      1. 在**交付選項標題**和**部署選項描述**中，輸入此交付選項的標題和描述。

      1. 在**使用說明**中，輸入詳細資訊，以協助您的買方在啟動軟體後使用您的軟體。

      1. 在**支援的 服務**中，選取買方可以在其中啟動軟體的環境。

      1. *選用 - * 在**Helm發行名稱**中，輸入要安裝Helm圖表的Kubernetes命名空間名稱。

      1. *選用 - * 在**Helm安裝命名空間**中，輸入 `helm install`命令將使用的Helm發行版本名稱。

      1. *選用 - * 在**Kubernetes服務帳戶名稱**中，輸入將用於連線至 AWS Identity and Access Management (IAM) Kubernetes的服務帳戶名稱。Kubernetes 服務帳戶會呼叫 AWS 授權或計量等服務。

      1. 在**覆寫參數**中，輸入將在啟動軟體的 CLI Helm 命令中使用的參數。這些參數可讓買方覆寫提供的預設值。使用 AWS Marketplace 管理主控台時有 15 個參數的限制，但使用 時沒有限制 AWS Marketplace Catalog API。如需詳細資訊，請參閱[將新版本新增至容器型產品](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/container-products.html#container-add-version)。
**注意**  
某些**覆寫參數**是必要的。Amazon EKS Anywhere 產品需要具有 `DefaultValue`的 授權秘密的**覆寫參數**`"${AWSMP_LICENSE_SECRET}"`。對於付費產品，您必須使用 `DefaultValue`的 為服務帳戶組態提供一個**覆寫參數**`"${AWSMP_SERVICE_ACCOUNT}"`。

      1. 選擇**隱藏密碼和秘密**，以在主控台、命令列工具和 APIs 中遮罩敏感資訊。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)`NoEcho`文件。

   1. 若要新增 **Amazon EKS 主控台附加元件**交付選項，請確定成品符合 [Amazon EKS 附加元件產品的需求](container-product-policies.md#publishing-eks-add-on)，然後執行下列步驟：
**注意**  
每個版本僅支援一個 Amazon EKS 附加元件交付選項。在 Amazon EKS 主控台上發佈您正在使用的目前版本之前，您無法新增版本。

      1. 在**Helm圖表**中，將 Amazon ECR URL 新增至購買者將在其部署環境中安裝的Helm圖表，以啟動您的軟體。

      1. 在**容器映像**中，將 Amazon ECR URL 新增至包含產品版本軟體的容器映像。確定已列出Helm圖表中的所有影像。

      1. 在**交付選項標題**和**部署選項描述**中，輸入此交付選項的標題和描述。

      1. 在**可見性**中，保持**選取 Limited** 的預設值。

      1. 在**附加元件名稱**中，輸入此附加元件的唯一名稱。您在 Amazon EKS 主控台中顯示時，您輸入的附加元件名稱會附加賣方的名稱。

      1. 在**附加元件版本**中，輸入安裝或升級此附加元件時可見的附加元件版本。遵循格式 `major.minor.patch`。

      1. 在**附加元件類型**中，從下拉式清單中選取附加元件的類別。

      1. 在**Kubernetes版本**中，選取您的附加元件將支援的所有Kubernetes版本。

      1. 在**架構**中，選取您的附加元件支援的平台架構。選項為 **AMD64** 和 **ARM64**。我們建議您支援這兩個架構，以最大化相容性。如果您的附加元件不支援 ARM64 裝置，您必須先指定新增支援的計劃日期，才能將產品發佈到所有商業廣告中 AWS 區域。

      1. 在**命名空間**中，輸入要安裝附加元件的唯一Kubernetes命名空間。安裝第三方附加元件時，不支援 `kube-system`、 `default`和 `kube-public`命名空間。

      1. 在**環境覆寫參數**中，您可以從 Amazon EKS 附加元件架構中選取最多 2 個環境參數。您可以將參數名稱從 values.yaml 映射到這些環境變數，即 `${AWS_REGION}`和 `${AWS_EKS_CLUSTER_NAME}`。

1. 若要新增其他交付選項，請選擇**新增交付選項**，然後重複先前步驟中的指示來設定這些選項。

1. 選擇**提交**。

## 步驟 4：更新版本資訊
<a name="container-product-updating-version"></a>

建立版本之後，透過修改與該版本相關的資訊，將更新的資訊提供給買方會很有幫助。例如，如果您計劃在發行 1.1 版之後限制 1.0 版，您可以更新 1.0 版的描述，將買方導向 1.1 版。提供 1.0 版將受到限制的日期。您可以從 更新版本資訊 AWS Marketplace 管理入口網站。

**更新版本資訊**

1. 登入 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/)。

1. 從**產品**功能表中選取**伺服器**。

1. 在**伺服器產品**索引標籤上，選取您要修改的產品。

1. 從**請求變更**下拉式清單中，選擇**更新版本資訊**。

1. 在**更新版本**頁面上，選取您要更新的版本。

1. 更新所選版本。可供更新的欄位取決於產品版本或交付選項的狀態。

   1. 對於所有版本，您可以更新**版本備註**。

   1. 對於尚未公開提供的版本，您可以更新**版本標題**。

   1. 對於尚未受到限制的交付選項，您可以更新下列欄位：
      + **Description**
      + **使用說明**
      + **支援的服務**

   1. 對於尚未公開提供的版本中的交付選項，您可以更新下列欄位：
      + **交付選項標題**
      + **Helm 圖表** （僅適用於**Helm圖表**交付選項）
      + **容器映像**
      + **部署資源**
      + **AddOn名稱**
      + **AddOn 版本**
      + **AddOn 類型**
      + **Helm 圖表 URI**
      + **CompatibleKubernetesVersions**
      + **SupportedArchitectures**
      + **命名空間**
      + **EnvironmentOverrideParameters**

   1. 對於公開提供的版本中的交付選項，您可以更新 **SupportedArchitectures**。

1. 選擇**提交**。

1. 確認請求顯示在**請求**索引標籤上，且狀態為**審核中**。

您可以隨時從[伺服器產品](https://aws.amazon.com/marketplace/management/products/server)頁面的請求索引標籤檢查**請求**的狀態。

## 限制 Amazon EKS 附加元件的版本
<a name="restriciting-version-eks-addon"></a>

若要限制以附加元件發佈的容器產品版本，請使用 底部的聯絡我們表單聯絡 AWS Marketplace 營運團隊[AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/)。