

对 AWS Marketplace API 参考进行了重组。有关支持的 API 操作的更多信息，请参阅 [ AWS 市场 API 参考](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html)。

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

# 使用基于容器的产品AWS MarketplaceAPI
<a name="work-with-container-products"></a>

您可以使用 C AWS Marketplace atalog API 自动执行处理基于容器的产品的任务。

有关使用 Catalog API 创建基于容器的产品的信息，请参阅。[创建产品](work-with-seller-products.md#create-product)

以下主题介绍如何使用目录 API 对基于容器的产品执行操作：

**Topics**
+ [添加新版本](#container-add-version)
+ [更新 Amazon EKS 附加组件的可见性](#update-delivery-option-visibility)
+ [创建存储库和资源](#container-repos)
+ [更新版本信息](#container-update-version)
+ [限制版本](#container-restrict-version)

## 添加新版本
<a name="container-add-version"></a>

如果您已有基于容器的产品AWS Marketplace，则可以使用AWS Marketplace Catalog API来添加新版本。这要求您已经在中AWS Marketplace为作为产品一部分的每个容器镜像或工件创建了存储库，并且可以从本地Docker和Helm文件中复制它们。

**注意**  
要详细了解如何使用创建基于容器的商品AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家*[指南》中的容器产品入门](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html)。  
要详细了解如何使用添加新版本（包括创建存储库以及将Helm文件构建Docker到这些存储库中）AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家指南》*中的 “[添加产品的新版本](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html#container-add-version)”。  
如果您尚未创建新的存储库，则可以使用 Catalog API 创建它们，请参阅[创建存储库和资源](#container-repos)。

要添加新版本，请使用`AddDeliveryOptions`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**注意**  
基于容器的产品的版本由一个或多个交付选项组成。例如，您可能有两个交付选项，一个与 NoSQL 数据库配合使用，另一个与 MySQL 配合使用，以便您的用户可以选择他们想要如何使用您的产品。您可以使用创建产品版本并在单个请求中添加多个配送选项`AddDeliveryOptions`。

**容器镜像传送请求语法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "AddDeliveryOptions",
      "Entity":
      {
        "Identifier": "{{example1-abcd-1234-5ef6-7890abcdef12}}",
        "Type": "ContainerProduct@1.0"
      },
      "DetailsDocument":
      {
        "Version":
        {
          "VersionTitle": "1.1",
          "ReleaseNotes": "{{Minor bug fix}}"
        },
        "DeliveryOptions":
        [
          {
            "DeliveryOptionTitle": "{{EKS Container image only delivery option}}",
            "Details":
            {
              "EcrDeliveryOptionDetails":
              {
                "ContainerImages":
                [
                  "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1"
                ],
                "DeploymentResources":
                [
                  {
                    "Name": "HelmDeploymentTemplate",
                    "Url": "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1"
                  }
                ],
                "CompatibleServices":
                [
                  "EKS"
                ],
                "Description": "Sample Description",
                "UsageInstructions": "helm pull {{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1"
              }
            }
          }      
        ]
      }
    }
  ]
}
```

**亚马逊 Bedrock AgentCore 运行时配送请求语法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "AddDeliveryOptions",
      "Entity":
      {
        "Identifier": "{{example1-abcd-1234-5ef6-7890abcdef12}}",
        "Type": "ContainerProduct@1.0"
      },
      "DetailsDocument":
      {
        "Version":
        {
          "VersionTitle": "{{1.1}}",
          "ReleaseNotes": "{{Minor bug fix}}"
        },
        "DeliveryOptions":
        [
          {
            "DeliveryOptionTitle": "{{Amazon Bedrock AgentCore Runtime Delivery Option}}",
            "Details":
            {
              "EcrDeliveryOptionDetails":
              {
                "ContainerImages":
                [
                  "{{111122223333.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1}}"
                ],
                "CompatibleServices":
                [
                  "Bedrock-AgentCore"
                ],
                "AgenticType":
                [
                  "{{AGENT}}" 
                ], 
                "Description": "{{Sample Description}}",
                "UsageInstructions": "{{To launch and invoke this agent on Amazon Bedrock AgentCore Runtime}}",
                "EnvironmentVariables":
                [
                  {
                    "Name": "{{HTTP_PORT}}",
                    "Description": "{{Port of the server}}",
                    "DefaultValue": "{{8080}}"
                  },
                  {
                    "Name": "{{API_KEY}}",
                    "Description": "{{Provide your unique API key here.}}"
                  }
                ]
              }
            }
          }      
        ]
      }
    }
  ]
}
```

**Helm图表交付请求语法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "AddDeliveryOptions",
      "Entity":
      {
        "Identifier": "{{example1-abcd-1234-5ef6-7890abcdef12}}",
        "Type": "ContainerProduct@1.0"
      },
      "DetailsDocument":
      {
        "Version":
        {
          "VersionTitle": "1.1",
          "ReleaseNotes": "{{Minor bug fix}}"
        },
        "DeliveryOptions":
        [
          {
            "DeliveryOptionTitle": "{{HelmChartDeliveryOption}}",
            "Details":
            {
              "HelmDeliveryOptionDetails":
              {
                "CompatibleServices":
                [
                  "EKS",
                  "EKS-Anywhere"
                ],
                "ContainerImages":
                [
                  "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1"
                ],
                "HelmChartUri": "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:helmchart1.1",
                "Description": "{{Helm chart description}}",
                "UsageInstructions": "{{Usage instructions}}",
                "MarketplaceServiceAccountName": "{{Service account name}}",
                "ReleaseName": "{{Optional release name}}",
                "Namespace": "{{Optional Kubernetes namespace}}",
                "OverrideParameters":
                [
                  {
                    "Key": "{{HelmKeyName1}}",
                    "DefaultValue": "${{{AWSMP_LICENSE_SECRET}}}"
                  },
                  {
                    "Key": "{{HelmKeyName2}}",
                    "DefaultValue": "${{{AWSMP_SERVICE_ACCOUNT}}}"
                  }
                ]
              }
            }
          }
        ]
      }
    }
  ]
}
```

**亚马逊 EKS Add-On 配送请求语法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json
{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "AddDeliveryOptions",
      "Entity": {
        "Type": "ContainerProduct@1.0",
        "Identifier": "$CreateProductChange.Entity.Identifier"
      },
      "DetailsDocument": {
        "Version": {
          "VersionTitle": "1.1",
          "ReleaseNotes": "{{New Add-on Release}}"
        },
        "DeliveryOptions": [
          {
            "DeliveryOptionTitle": "{{AWS Marketplace Test AddOn from CAPI 1}}",
            "Visibility": "Limited",
            "Details": {
              "EksAddOnDeliveryOptionDetails": {
                "ContainerImages": [
                  "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/test-seller/canary-test-repo-product-6:mongo"
                ],
                "HelmChartUri": "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/rocket/rocket-product-helm:1.0",
                "Description": "{{Description for delivery option provided by ISV}}",
                "UsageInstructions": "{{Usage instructions with launch instructions}}",
                "AddOnName": "{{aws-mp-test}}",
                "AddOnVersion": "{{1.2.1}}",
                "AddOnType": "networking",
                "CompatibleKubernetesVersions": [
                  "1.25",
                  "1.26"
                ],
                "SupportedArchitectures": [
                  "amd64",
                  "arm64"
                ],
                "Namespace": "{{my-test-namespace}}",
                "EnvironmentOverrideParameters": [
                  {
                    "Key": "cluster-name",
                    "Value": "${{{AWS_EKS_CLUSTER_NAME}}}"
                  },
                  {
                    "Key": "region-name",
                    "Value": "${{{AWS_REGION}}}"
                  }
                ]
              }
            }
          }
        ]
      },
      "ChangeName": "{{PublishAddonNew}}"
    }
  ]
}
```

为要添加`AddDeliveryOptions`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-您的基于容器的产品。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的产品将使用的配送方式（产品类型）：`ContainerProduct@1.0`。`Type`
+ `DetailsDocument`（对象）（必填）-请求的详细信息。它包含有关您要添加的版本的所有信息。此字段是字符串字段。
  + `Version`（object）-有关您要添加到产品中的版本的详细信息。
    + `VersionTitle`（字符串）-您正在创建的版本的标题。通常，这是对版本的描述，比如**Version 1.1**或简而言之**1.1**。您的买家将能够从版本标题列表中选择要部署的版本。
    + `ReleaseNotes`（字符串）-有关此版本的详细说明。必须少于 30,000 个字符。
  + `DeliveryOptions`（对象数组）-一系列交付选项，其中每个选项都是产品版本的交付方式。例如，如果您有一个针对亚马逊弹性容器服务 (Amazon ECS) 的配送选项，而亚马逊弹性 Kubernetes Service (Amazon EKS) 有一个配送选项，则必须有两个配送选项。
    + `DeliveryOptionTitle`（字符串）— 一份简短的描述，可帮助您的买家在配送选项之间进行选择。
    + `Details`（对象）-用于此交付选项的资源。这是详细信息字段中的详细信息字段。您无需在此字段中双重转义字符。
      + `AddOnName – `买家将在 Amazon EKS 目录中看到的唯一附加组件名称。此名称稍后将使用添加前缀`SellerAlias`。例如，ISV 提供的附加组件名称在`isv-alias_`哪里。
      + `AddOnType – `从 Amazon EKS 支持的值列表中选择的插件类型：Gitops \| 监控 \| 日志 \| 证书管理 \| 策略管理 \| 成本管理 \| 自动扩展 \| 存储 \| kubernetes管理 \| 服务网格 \| etcd-backup \| 入口服务类型 \| 负载均衡器 \| 本地注册表 \| 联网 \| 安全 \| 备份 \| 入口控制器 \| 可观察性
      + `AddOnVersion – `一种语义版本，便于买家选择 AddOn 他们需要安装或升级的特定版本。
      + `CompatibleKubernetesVersions`— 该软件与之兼容的 Amazon EKS Kubernetes 版本。
      + `CompatibleServices`（字符串数组）-该版本与之兼容的服务数组。有效选项：`ECS``EKS`、`ECS-Anywhere`、`EKS-Anywhere`、和`Bedrock-AgentCore`。
      + `ContainerImages`（字符串数组）-此版本使用的容器镜像 URL 数组。路径将是您已将图像上传到的存储库，并带有此版本使用的图像标签。该列表必须包括所有需要的图像，甚至包括与先前版本相比没有变化的图像。有关使用 Catalog API 创建仓库的信息，请参阅下一节。
      + `Description`（字符串）— 对配送选项的详细描述，用于向买家提供详细信息。您还可以添加指向其他地方提供的更多说明的链接。
      + `EcrDeliveryOptionDetails`— `AgenticType` — 运行时代理的类型。有效选项：`AGENT``MCP_SERVER`、或`A2A_SERVER`。
      + `EcrDeliveryOptionDetails`— `EnvironmentVariables` — AgentCore 运行时容器所需的环境变量列表，这些变量将在部署时预先填充给购买者。为每个变量提供一个对象，其中包含容器预期的*名称*、*描述*和可选的 *defaultValue*。对于诸如凭证或 API 密钥之类的唯一变量，请不要提供默认值。您可以使用描述来指定有关变量的详细信息以及可能的值。当买家发布您的商品时，系统将预先填充所有提供的变量及其默认值。
      + `EcrDeliveryOptionDetails – ``DeploymentResources (array of objects)`— 该版本所需的一系列其他资源，例如Helm图表。每个资源都包括一个`Name`用来描述它，一个`URL`指向该资源。
      + `EnvironmentOverrideParameters – `插件要使用的系统参数列表。提供的某些 ISV AddOn (HelmChart) 可能需要使用从 Amazon EKS 执行环境状态派生的信息（/system 信息）进行配置。例如，`EksClusterRegion``EKSClusterName`、和其他。您可以在 Amazon EKS AddOn 发布时动态替换这些值，从而避免买家采取其他行动。Amazon EKS 系统已经支持自动将系统参数替换为附加组件。 AWS Marketplace可以扩展 ISV 的经验来收集这些需要替换的参数。

        要替换的通用系统信息可以通过按照类似于替换的惯例提供一个AWS Marketplace指定的常量来Helm指示。支持的值是 `${AWS_REGION}` 和 `${AWS_EKS_CLUSTER_NAME}`。

        ```
         "EnvironmentOverrideParameters" : [ {
           "Key" : "my-field.region"
           "Value" : "${{{AWS_REGION}}}"
           },
           {
           "Key" : "my-second-field"
           "Value" : "${{{AWS_EKS_CLUSTER_NAME}}}"
           },
        ```
      + `HelmDeliveryOptionDetails`— `HelmChartUri (string)` — 买家为启动软件而安装的 Amazon ECR 中托管的Helm图表的 URL。
      + `HelmDeliveryOptionDetails – ``MarketplaceServiceAccountName (string)`— *可选* — Kubernetes 服务账户的名称。服务账号将用于连接 AWS Identity and Access Management (IAM) 以获得调用权限AWS 服务。
      + `HelmDeliveryOptionDetails – ``ReleaseName (string)`— *可选* —提供给购买者用来启动软件的`helm install`命令的Helm版本名称。如果未包含，Helm将为您提供自动生成的版本名称。
      + `HelmDeliveryOptionDetails – ``Namespace (string)`— *可选* —将安装Helm图表的Kubernetes命名空间。
      + `HelmDeliveryOptionDetails – ``OverrideParameters (array of objects)`— 将在启动应用程序的Helm命令中使用的参数。买家可以改写默认值。
**注意**  
对于 Amazon EKS Anywhere 产品，请为许可证密钥提供至少 1 个覆盖参数。提供`DefaultValue``"${AWSMP_LICENSE_SECRET}"`。  
对于付费产品，请为服务帐号配置提供至少 1 个覆盖参数。提供`DefaultValue``"${AWSMP_SERVICE_ACCOUNT}"`。
        + `Key`（字符串）— 用点表示法表示的参数键（覆盖.example.key）。
        + `DefaultValue`（字符串）-此覆盖参数的默认值。
      + `Namespace – `ISV 为插件安装提供了命名空间。
      + `SupportedArchitectures – `支持的架构列表，例如 amd64 和 arm64。
      + `UsageInstructions`（字符串）-提供有关此交付选项的使用说明。最多可以包含 4,000 个字符。

**响应语法**

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和，如下所示。`ChangeSetId` `ChangeSetArn`

```
{
  "ChangeSetId": "{{example123456789012abcdef}}",
   "ChangeSetArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/ChangeSet/{{example123456789012abcdef}}"
}
```

变更请求将被添加到队列中并进行处理，包括扫描集装箱图像和其他信息，以确保其符合[容器产品AWS Marketplace指南](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-policies.html)。此过程可能需要几分钟到几小时，具体取决于容器的数量和大小。

您可以通过，也可以使用 API 操作直接通过 Catalog API 检查请求的`[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)`状态。AWS Marketplace 管理门户

有关更改集的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。有关卖家商品变更集错误的更多信息，请参阅[更改集合状态和错误](work-with-seller-products.md#seller-product-change-set-errors)。

**异步错误**

以下错误特定于中的`AddDeliveryOptions`操作AWS Marketplace Catalog API。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 不兼容产品状态 | 使用现有的限量产品或公共产品。 | 
| 不兼容的服务 | 服务列表包含不兼容的服务。 [不兼容\_服务] 提供有效的兼容服务列表。 | 
| 未指定服务 | 提供至少 1 项兼容服务。 | 
| 重复\_兼容\_ \_服务 AWS | 服务列表包含重复的条目。移除它们。每个条目都必须是唯一的。 | 
| 版本标题无效 | 删除商标符号前的空格。 | 
| 版本标题无效 | 删除以下不支持的字符：[x、y、z]  | 
| 版本标题无效 | 删除版本标题开头的空格。 | 
| 版本标题无效 | 提供少于 [x] 个字符的版本标题。 | 
| 重复版本标题 | 版本标题 [duplicate\_version\_title] 是重复的。移除或更改标题。 | 
| 无效的发行说明 | 删除商标符号前的空格。 | 
| 无效的发行说明 | 移除不支持的字符：[x、y、z]  | 
| 无效的发行说明 | 删除发行说明开头的空格。 | 
| 无效的发行说明 | 提供少于 (x) 个字符的发行说明。 | 
| 无效\_使用\_指令 | 删除商标符号前的空格。 | 
| 无效\_使用\_指令 | 移除不支持的字符：[x、y、z]  | 
| 无效\_使用\_指令 | 提供少于 (x) 个字符的使用说明。 | 
| 无效\_使用\_指令 | 提供使用说明。 | 
| 缺少容器镜像 | 提供至少 1 个容器镜像。 | 
| NO\_LICENSE\_SECRET\_KEY | 对于 Amazon EKS Anywhere 产品，请为许可证密钥提供 1 个覆盖参数。DefaultValue的需求"${AWSMP\_LICENSE\_SECRET}"，请参见第节中的示例。 | 
| 容器图片太多了 | 提供少于 50 个容器镜像。 | 
| 复制容器镜像 | 容器镜像列表包含重复的图像：[duplicate\_images]。提供包含独特图片的列表。 | 
| 无效的容器镜像 | 为容器镜像提供有效的 URI。 | 
| INVALID\_CONTAINER\_IMAGE\_URI | 图片 [invalid\_image\_uri] 无权访问此产品。将图片上传到其相应的产品存储库。有关上传的信息，请参阅[容器产品入门](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html)。 | 
| INVALID\_CONTAINER\_IMAGE\_TAG | 避免使用 “最新” 标签。 | 
| 重复配送选项标题 | 重复的配送选项标题：[重复标题]。移除重复项 | 
| 无效的配送选项标题 | 配送选项标题 [existing\_titles] 已经存在。请提供不同的标题。 | 
| 配送选项标题无效 | 提供少于 (x) 个字符的配送选项标题。 | 
| 没有服务账户配置 | 对于付费产品，请为服务帐号配置提供 1 个覆盖参数。DefaultValue的需求"${AWSMP\_SERVICE\_ACCOUNT}"，请参见第节中的示例。 | 
| 无效的细节  | 提供的详细信息无效。 | 
| 空资源名称 | 提供资源名称。 | 
| 空资源网址 | 提供资源网址。 | 
| 资源名称无效 | 提供少于 256 个字符的资源名称。 | 
| 资源网址无效 | 提供少于 256 个字符的资源 URL。 | 
| 无效\_简短\_描述 | 请提供少于 1,000 个字符的简短描述。 | 
| 无效\_简短\_描述 | 提供简短的描述。 | 
| SCAN\_ERROR | 修复图片 “[x]” 上的安全漏洞 “[y]”。 | 
| 图片未找到 | 公共图片 URI [invalid\_image\_uri] 无效。提供有效的 URI。 | 
| INVALID\_ARN | 为图片访问提供有效的 ARN。 | 
| 图片\_无法访问 | 为图片访问提供有效的 ARN。 | 
| 重复插件名称 | 您提供的 AddOn 名称已被其他产品使用。请提供不同的名称。 | 
| 复制插件版本 | 附加版本标题 [duplicate\_version\_title] 已在使用中。请提供不同的标题。 | 
| 插件类型无效 | 插件类型 [invalid\_types] 无效。从支持的列表中提供一个类型：[eks\_addon\_do\_supported\_types]。 | 
| 无效的 KUBERNETES\_VERSION | Kubernetes 版本 [invalid\_versions] 无效。提供支持列表中的版本：[eks\_addon\_do\_supported\_kubernetes\_versions]。 | 
| 重复的 KUBERNETES\_VERSIONS | 重复的 Kubernetes 版本：[重复版本]。提供包含唯一版本的列表。 | 
| 无效架构 | 架构 [invalid\_architectures] 无效。提供 Amazon EKS 支持的架构中的架构：[eks\_addon\_do\_supported\_架构]。 | 
| 支持复制的架构 | 重复架构：[重复架构]。提供支持的独特架构列表。 | 
| 无效\_可见性\_状态 | 状态 [invalid\_states] 对于 {EKS\_DO} 配送选项无效。从以下允许值中提供有效的可见性状态：有限。 | 
| 无效\_环境\_覆盖\_参数\_值 | 覆盖参数值 [invalid\_values] 无效。提供以下列表中的有效值：[eks\_addon\_do\_environment\_override\_parameter\_values]。 | 
| 重复\_环境\_覆盖\_参数\_密钥 | 环境覆盖参数包含重复的密钥：[duplicate\_keys]。移除它们。 | 
| 太多\_EKS\_ADDON\_DELIVERY\_OPTIONS | 仅为该版本提供一个 Amazon EKS 附加配送选项。 | 
| 不兼容的插件名称 | 插件名称 [provided\_name] 与现有名称不匹配。重复使用此插件的公共版本或先前版本中的现有名称。您只能为每种产品使用一个附加名称。 | 
| 不兼容的插件类型 | 附加组件类型 [provided\_type] 与现有类型不匹配。重复使用此插件的公共版本或先前版本中的现有类型。每种产品只能使用一种附加类型。 | 
| 不兼容\_ADDON\_NAMESPACE | 插件命名空间 [provided\_namespace] 与现有命名空间不匹配。重复使用此插件的公共版本或先前版本中的现有命名空间。每个产品只能使用一个插件命名空间。 | 
| INVALID\_HELM\_CHART\_URI | Helm chart URI [invalid\_uri] 无效。提供 SemVer 2 格式的 URI。 | 
| 不兼容的头盔对象（无效的头盔对象） | <unsupported-objects>在不使用以下不支持的Helm对象的情况下提供Helm图表:. | 
| 无效的 DEPENDENT\_HELM\_CHARTS | <invalid-subcharts>提供一个Helm图表，其中包含以下依赖图表，直接位于父图表目录中，而不是外部来源:. | 
| 无效\_HELM\_SENSITIVE\_CONFIG | 提供不含敏感信息或机密的高级配置架构。关键词：<sensitive-parameters-identified>  | 
| INVALID\_HELM\_UNDECLARED\_IMAGES | 在请求的交付选项中提供以下 Helm 图表图片:<list-of-images>. | 
| 无效的头盔图表图片 | 提供一个 Helm 图表，其中包含通过 AddRepositories 变更类型创建的存储库中的图像。外部图片:<images-identified>. | 
| INVALID\_HELM\_LINT | 提供成功通过 Helm lint 的 Helm 图表。 | 
| 无效的头盔模板 | 提供成功通过 Helm 模板的 Helm 图表。 | 
| 无效的头盔图 | 提供一份符合《AWS Marketplace卖家指南》Helm Charts [项目符号列表中确定的AWS Marketplace指导方针的 Helm 图表](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-policies.html)。 | 
| 插件名称无效 | 提供一个遵循以下正则表达式模式的 AddOn 名称：xx  | 
| INVALID\_ADDON\_NAMESPACE | 命名空间值 [invalid\_namespaces] 无效。命名空间必须遵循 {EKS\_ADD\_ON\_NAMESPACE\_REGEX} 正则表达式。例如，命名空间、命名空间测试。 | 
| INVALID\_ADDON\_NAME\_PATTERN | 提供一个以字母或数字开头的插件名称，然后是字母、数字和连字符的组合。例如，测试插件、eksaddon  | 
| 无效的插件版本模式 | 使用以下模式提供附加版本：“<major>。 <minor>。 <patch>”（例如，1.2.3、0.1.2、0.1.1）  | 
| 空配送选项编号 | 提供配送选项 ID 的列表。 | 
| 无效的配送选项输入 | 该列表包含一个或多个无效的配送选项。提供有效的列表，并确保每个选项都有单一的交付方式。 | 
| OVERRIDE\_PARAMETER\_KEYS\_CONTAINS\_PECIAL\_CHARS | 覆盖参数密钥 [invalid\_keys] 包含无效字符。您的密钥只能使用字母、数字、双引号 (” “) 和加号 (\+)。 | 
| 无效的容器镜像存储库 | 存储库 [invalid\_repositories] 无效。提供通过 AddRepositories 更改类型创建的存储库。 | 
| INVALID\_CONTAINER\_IMAGE\_TAG\_FORMAT | 容器镜像标签 [invalid\_image\_tag] 无效。提供符合 {CONTAINER\_IMAGE\_TAG\_REGEX} 正则表达式的标签。 | 
| DUPLICATE\_OVERRIDE\_PARAMETER\_KE | 覆盖参数包含重复的密钥 [duplicate\_keys]。删除重复项。 | 
| 不支持\_CONTAINER\_IMAGE\_URI | 不支持容器镜像 [unsupported\_image]。提供一张遵循镜[像清单 V 2、架构 1](https://docker-docs.uclv.cu/registry/spec/manifest-v2-1/) 的图片。 | 
| 重复的存储库名称 | 重复的存储库名称：[重复存储库名称]。提供唯一的名称。 | 
| 无效的命名空间 | 命名空间值 [invalid\_namespaces] 无效。提供符合 {HELM\_RELEASE\_PARAM\_REGEX} 正则表达式的值。 | 
| 版本名称无效 | releaseName 值 [invalid\_release\_names] 无效。提供符合 {HELM\_RELEASE\_PARAM\_REGEX} 正则表达式的值。 | 
| 覆盖\_PARAMETER\_KEYS\_CONTAINS\_RESERVED\_PARAMETER\_KEYS | 交付选项标题 [invalid\_keys] 的覆盖参数密钥已保留。保留的密钥：[reserved\_param\_keys]。提供不同的密钥。 | 

## 更新 Amazon EKS 附加组件的可见性
<a name="update-delivery-option-visibility"></a>

您可以使用目录 API 来更新您的产品版本的 Amazon EKS 附加配送选项的可见性AWS Marketplace。您的集装箱产品的集装箱和Helm配送选项会自动创建，其可见性状态为 “公开”。

**注意**  
只有列出的版本中的 Amazon EKS 附加配送选项才支持更新产品版本的可见性。如果您的产品尚未处于 “公开” 状态，请使用提交申请，要求发布具有 “公开” 可见性状态的产品AWS Marketplace 管理门户。

默认情况下，当您使用 Amazon EKS 附加组件交付选项创建版本时，该版本将以 “受限” 状态发布。“受限” 状态意味着该产品并非在所有地区公开发售，供您的买家在 Amazon EKS 集群中使用和部署。您可以通过使用`UpdateDeliveryOptionsVisibility`更改类型调用 `StartChangeSet` API 操作，将交付选项的可见性从 “受限” 更新为 “公开”。`DeliveryOptions Id`从您的产品版本中指定与 Amazon EKS 附加配送选项相对应的。

**请求语法**

```
{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateDeliveryOptionsVisibility",
      "Entity":
      {
        "Identifier": "{{prod-example12345}}",
        "Type": "ContainerProduct@1.0"
      },
      "DetailsDocument":
      {
        "DeliveryOptions":
        [
          {
            "Id": "do-{{1234567891234567891234}}",
            "TargetVisibility": "Public"
          }
        ]
      }
    }
  ]
}
```

要添加`UpdateDeliveryOptionsVisibility`更改类型，请提供以下字段的信息：
+ `Entity`（对象）（必填）-您的基于容器的产品。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的产品使用的配送方式（产品类型）：`ContainerProduct@1.0`。`Type`
+ `DetailsDocument`（object）（必填）-请求的详细信息，包括有关您要创建的存储库的信息。以下字段均为必填字段。
  + `DeliveryOptions`（对象列表）-`DeliveryOption` 对象列表，包括每个对象的详细信息：
    + `Id`（字符串）-的唯一标识符`DeliveryOption`。（要获取的唯一标识符`DeliveryOption`，请对要更新的产品调用`DescribeEntity`操作。
    + `TargetVisibility`— 产品预期的新知名度。

**响应语法**

已根据您的请求创建更改集。对该请求的回复将为您提供变更集`ChangeSetArn`的`ChangeSetId`和。

```
{
"ChangeSetId": "{{example123456789012abcdef}}",
   "ChangeSetArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/ChangeSet/{{example123456789012abcdef}}"
}
```

变更请求将被添加到队列中并进行处理，包括扫描集装箱图像和其他信息，以确保其符合[容器产品AWS Marketplace指南](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-policies.html)。此过程可能需要几分钟到几小时，具体取决于容器的数量和大小。

您可以通过查看请求的状态AWS Marketplace 管理门户，也可以使用 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 操作AWS Marketplace Catalog API来检查请求的状态。

有关更改集的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。有关卖家商品变更集错误的更多信息，请参阅[更改集合状态和错误](work-with-seller-products.md#seller-product-change-set-errors)。

**异步错误**

下表显示了特定于中的`AddDeliveryOptions`操作的错误AWS Marketplace Catalog API。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 空配送选项编号 | 提供配送选项 ID 的列表。 | 
| 无效\_可见性\_状态 | 不支持您提供的TargetVisibility选项。请使用允许的选项重试。允许的选项有：Public | 
| 无效的配送选项编码 | 您提供的配送选项详情无效。提供可在产品中找到的配送选项编号。找不到身份证：[x] | 
| 重复配送选项编号 | 重复的配送选项 ID：[duplicate\_ids]。提供唯一的配送选项 ID。 | 
| 审计错误 | 您尚未完成针对您的 Amazon EKS 附加版本的所有兼容的 Amazon EKS 集群版本的独立软件供应商 (ISV) 测试。在我们发布配送选项之前，您必须完成测试。 | 
| 无效的配送选项类型 | 您提供的配送选项类型无效。请确保您的配送选项的类型为：EksAddOn，然后重试。 | 
| 不兼容的头盔对象 | 提供不含不支持对象的Helm图表：不支持的Helm对象如下：所有 Release Helm 对象（.Name 和.Namespace 除外）、Helm挂钩和查找函数。 | 
| 不兼容的插件名称 | 插件名称 [provided\_name] 与公共版本名称不匹配。在发布之前更新公共名称。 | 
| 不兼容的插件类型 | 插件类型不匹配。重复使用本产品的公共插件版本或之前的附加组件版本中的现有插件类型。每种产品仅支持一个附加组件。 | 
| 不兼容\_ADDON\_NAMESPACE | 提供的插件命名空间 [provided\_namespace] 与公共版本命名空间不匹配。在发布之前更新插件命名空间。 | 

## 创建存储库和资源
<a name="container-repos"></a>

要创建基于容器的产品的新版本，您必须在存储库中AWS Marketplace拥有该版本的可用资源。您创建存储库，然后将（和）资源推送Docker（上传Helm）到存储库中。要了解如何通过创建存储库AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家指南》*中的[添加商品的新版本](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html#container-add-version)。

要创建新的存储库，请`StartChangeSet`使用`AddRepositories`更改类型调用，如以下示例所示。

**请求语法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "AddRepositories",
      "Entity":
      {
        "Identifier": "{{example1-abcd-1234-5ef6-7890abcdef12}}",
        "Type": "ContainerProduct@1.0"
      },
      "DetailsDocument":
      {
        "Repositories":
        [
          {
            "RepositoryName": "{{new-repo-1}}",
            "RepositoryType": "ECR"
          },
          {
            "RepositoryName": "{{new-repo-2}}",
            "RepositoryType": "ECR"
          }
        ]
      }
    }
  ]
}
```

为要添加`AddRepositories`更改类型的字段提供信息：

有关创建存储库的更多信息，请参阅《*AWS Marketplace卖家指南》*中的[添加新版本](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-adding-version)。
+ `Entity`（对象）（必填）-您的基于容器的产品。
  + **标识符**（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的产品将使用的配送方式（产品类型）：`ContainerProduct@1.0`。`Type`
+ `DetailsDocument`（对象）（必填）-请求的详细信息。它包含有关您要创建的存储库的信息。包含的字段均为必填字段。
  + `Repositories`（结构数组）-存储库对象列表。每个存储库对象都包含名称和类型。
    + `RepositoryName`（字符串）-要创建的存储库的名称。
    + `RepositoryType`（字符串）-要创建的存储库的类型。唯一允许的值为 `ECR`。

**注意**  
每个产品最多可以有 70 个存储库，但您可以向单个存储库添加多个资源和版本的资源，方法是在推送时为它们指定不同的标签。

创建一个或多个存储库后，您可以将资源添加到存储库中。有关如何将资源推送到存储库的信息，请参阅 *Amazon Elastic Container Registry 用户指南*[中的推送镜像](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push.html)。有关您的一个仓库所需的特定推送命令的信息，请参阅《*AWS Marketplace卖家指南*》中的[添加新版本](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-adding-version)。

**异步错误**

以下错误特定于中的`AddRepositories`操作AWS Marketplace Catalog API。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| ECR\_REPOSITORY\_NAME 无效 | 以 “nginx-web-app” 的格式提供存储库名称 | 
| DUPLICATE\_ECR\_REPOSITORY\_NAME | 存储库 [duplicate\_repo\_names] 已经存在。选择其他名称。 | 
| 缺少存储库信息 | 提供至少 1 个存储库名称。 | 
| ECR\_REPOSITORY\_NAME 无效 | 已达到最大字符长度 256。字符长度计数包含卖家命名空间。 | 

## 更新版本信息
<a name="container-update-version"></a>

您可以在中使用目录 API 更新基于容器的产品的现有版本的详细信息。AWS Marketplace

**注意**  
当产品公开可用时，您无法更新该版本的版本标题、容器镜像、交付选项标题或部署资源。如果您需要更新产品的这些方面，请改为创建一个新版本。

要更新基于容器的产品的现有版本，请使用`UpdateDeliveryOptions`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。这会更新您指定的交付选项的详细信息以及关联的版本。您必须至少包括一个配送选项。

**容器镜像传送请求语法**

```
POST /StartChangeSet HTTP/1.1 
Content-type: application/json

{
   "Catalog":"AWSMarketplace",
   "ChangeSet":[
      {
         "ChangeType":"UpdateDeliveryOptions",
         "Entity":{
            "Identifier":"{{example1-abcd-1234-5ef6-7890abcdef12}}",
            "Type":"ContainerProduct@1.0"
         },
         "DetailsDocument":{
            "Version":{
               "ReleaseNotes":"New release notes",
               "VersionTitle":"Version 1.2"
            },
            "DeliveryOptions":[
               {
                  "Id":"{{example4-2222-cccc-2222-cccccccccccc}}",
                  "Details":{
                     "EcrDeliveryOptionDetails":{
                        "DeliveryOptionTitle":"{{New Delivery Option Title}}",
                        "Description":"New description",
                        "UsageInstructions":"{{New usage instructions}}",
                        "CompatibleServices":[
                           "EKS"
                        ]
                     }
                  }
               }
            ]
         }
      }
   ]
}
```

**Helm图表交付请求语法**

```
POST /StartChangeSet HTTP/1.1 
Content-type: application/json

{
   "Catalog":"AWSMarketplace",
   "ChangeSet":[
      {
         "ChangeType":"UpdateDeliveryOptions",
         "Entity":{
            "Identifier":"{{example1-abcd-1234-5ef6-7890abcdef12}}",
            "Type":"ContainerProduct@1.0"
         },
         "DetailsDocument":{
            "Version":{
               "ReleaseNotes":"New release notes",
               "VersionTitle":"Version 1.2"
            },
            "DeliveryOptions":[
               {
                  "Id":"{{example5-2222-cccc-2222-cccccccccccc}}",
                  "Details":{
                     "HelmDeliveryOptionDetails":{
                        "DeliveryOptionTitle":"{{New Delivery Option Title}}",
                        "ContainerImages":[
                           "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/imagename:1.0"
                        ],
                        "HelmChartUri":"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/helmname:1.0",
                        "CompatibleServices":[
                           "EKS-Anywhere"
                        ],
                        "Description":"{{New description}}",
                        "UsageInstructions":"{{New usage instructions}}",
                        "MarketplaceServiceAccountName":"{{new-service-account-name}}",
                        "ReleaseName":"{{new-release-name}}",
                        "Namespace":"{{new-cluster-namespace}}",
                        "OverrideParameters":[
                           {
                              "Key":"new.parameter.key",
                              "DefaultValue":"{{New parameter default value}}"
                           }
                        ]
                     }
                  }
               }
            ]
         }
      }
   ]
}
```

**亚马逊 EKS Add-On 配送请求语法**

```
POST /StartChangeSet HTTP/1.1 
Content-type: application/json

{
   "Catalog":"AWSMarketplace",
   "ChangeSet":[
      {
         "ChangeType":"UpdateDeliveryOptions",
         "Entity":{
            "Identifier":"{{example1-abcd-1234-5ef6-7890abcdef12}}",
            "Type":"ContainerProduct@1.0"
         },
         "DetailsDocument":{
            "Version":{
               "ReleaseNotes":"{{New release notes}}",
               "VersionTitle":"{{Version 1.2}}"
            },
            "DeliveryOptions":[
               {
                  "Id":"{{example4-2222-cccc-2222-cccccccccccc}}",
                  "Details":{
                     "EksAddOnDeliveryOptionDetails":{
                        "ContainerImages":[
                           "{{709825985650}}.dkr.ecr.us-east-1.amazonaws.com/{{test-seller}}/{{canary-test-repo-product-6}}:mongo"
                        ],
                        "Description":"{{Description for delivery option provided by ISV}}",
                        "UsageInstructions":"{{Usage instructions with launch instructions}}",
                        "HelmChartUri":"{{709825985650}}.dkr.ecr.us-east-1.amazonaws.com/{{rocket}}/{{rocket-product-helm}}:1.0",
                        "AddOnName":"{{aws-mp-test}}",
                        "AddOnVersion":"{{1.2.1}}",
                        "AddOnType":"networking",
                        "CompatibleKubernetesVersions":[
                           "1.19",
                           "1.20"
                        ],
                        "SupportedArchitectures":[
                           "amd64",
                           "arm64"
                        ],
                        "Namespace":"{{my-test-namespace}}",
                        "EnvironmentOverrideParameters":[
                           {
                              "Key":"my-field",
                              "Value":"${{{AWS_EKS_CLUSTER_NAME}}}"
                           }
                        ]
                     }
                  }
               }
            ]
         }
      }
   ]
}
```

为要添加`UpdateDeliveryOptions`更改类型的字段提供信息：

有关这些字段的更多信息，请参阅《*AWS Marketplace卖家指南》*中的[添加新版本](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-adding-version)。
+ `Entity`（对象）（必填）-您的基于容器的产品。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的产品将使用的配送方式（产品类型）：`ContainerProduct@1.0`。`Type`
+ `DetailsDocument`（对象）（必填）-请求的详细信息。它包含有关您想要更新的基于容器的产品版本的所有信息。包含的字段均为可选字段，但必须至少包含一个要更新的字段。
  + `Version`（对象）-有关软件版本的详细信息。
    + `VersionTitle`（字符串）-您正在创建的版本的标题。通常，这是对版本的描述，例如**Version 1.1**或简而言之**1.1**。您的买家将能够从所有版本标题列表中选择要部署的版本。

      如果产品已经公开发布，则无法更新此属性。
    + `ReleaseNotes`（字符串）— 供买家告知从一个版本到下一个版本的更改的备注。
  + `DeliveryOptions`（对象列表）-`DeliveryOption` 对象列表，包括每个对象的详细信息：
    + `Id`（字符串）-的唯一标识符`DeliveryOption`（您可以`DeliveryOption`通过对要更新的产品调用`DescribeEntity`操作来获取的唯一标识符）。
    + `Details`（对象）-保存交付选项的详细信息。请注意，这个嵌套的 details 对象*不需要*进行双重转义。
      + `EcrDeliveryOptionDetails`（object）-容器镜像传送选项的详细信息。
        + `DeliveryOptionTitle`（字符串）— 允许买家在配送选项之间进行选择的简短描述。

          如果产品已经公开发布，则无法更新此属性。
        + `ContainerImages`（字符串数组）-此版本使用的容器镜像 URL 数组。路径将是您已将图像上传到的存储库，并带有此版本使用的图像标签。如果包含此字段，则列表必须包含所有需要的图像，即使是未更改的图像也是如此。

          如果产品已经公开发布，则无法更新此属性。
        + `DeploymentResources`（对象数组）-版本所需的其他部署资源数组，例如指向Helm图表或其他文档的链接。每个资源都包含一个用于描述它的名称和一个指向该资源的 URL。在您的版本的启动页面上，它会以链接列表的形式显示。

          如果产品已经公开发布，则无法更新此属性。
          + `Name`（字符串）-向买家显示的超链接文本。
          + `Url`（字符串）-向买家显示的超链接的 URL。
        + `CompatibleServices`（字符串数组）-该版本与之兼容的服务数组。有效选项：`ECS``EKS`、`ECS-Anywhere`、`EKS-Anywhere`、和`Bedrock-AgentCore`。
        + `AgenticType`运行时代理的类型。有效选项：`AGENT``MCP_SERVER`、或`A2A_SERVER`。
        + `Description`（字符串）— 对配送选项的详细描述，用于向买家提供详细信息。您还可以添加指向其他地方托管的更多说明的链接。
        + `UsageInstructions`（字符串）-提供有关如何部署和使用产品的说明。您也可以添加指向其他地方托管的使用说明的链接。最多可以包含 4,000 个字符。
        + `EnvironmentVariables`— AgentCore 运行时容器所需的环境变量列表，这些变量将在部署时预先填充给购买者。为每个变量提供一个对象，其中包含容器预期的*名称*、*描述*和可选的 *defaultValue*。对于诸如凭证或 API 密钥之类的唯一变量，请不要提供默认值。您可以使用描述来指定有关变量的详细信息以及可能的值。当买家发布您的商品时，系统将预先填充所有提供的变量及其默认值。
    + `Id`（字符串）-的唯一标识符`DeliveryOption`（您可以`DeliveryOption`通过对要更新的产品调用`DescribeEntity`操作来获取的唯一标识符）。
    + `Details`（对象）-保存交付选项的详细信息。请注意，这个嵌套的 details 对象*不需要*进行双重转义。
      + `HelmDeliveryOptionDetails`（对象）-Helm 图表交付选项的详细信息。
        + `DeliveryOptionTitle`（字符串）— 允许买家在配送选项之间进行选择的简短描述。

          如果产品已经公开发布，则无法更新此属性。
        + `ContainerImages`（字符串数组）-此版本使用的容器镜像 URL 数组。路径将是您已将图像上传到的存储库，并带有此版本使用的图像标签。该列表必须包括所有需要的图像，甚至包括与先前版本相比没有变化的图像。有关使用 Catalog API 创建仓库的信息，请参阅下一节。
        + `HelmChartUri`（字符串）— 买家为启动软件而安装的 Amazon ECR 中托管的Helm图表的 URL。
        + `CompatibleServices`（字符串数组）-该版本与之兼容的服务数组。有效的选项为 `ECS` 和 `EKS`。
        + `Description`（字符串）— 对配送选项的详细描述，用于向买家提供详细信息。您还可以添加指向其他地方提供的更多说明的链接。
        + `UsageInstructions`（字符串）-提供有关此交付选项的使用说明。最多可以包含 4,000 个字符。
        + `MarketplaceServiceAccountName`（字符串）-Kubernetes 服务帐户的名称。服务账号将用于连接以AWS Identity and Access Management获得调用AWS服务的权限。
        + `ReleaseName`（字符串）-提供给购买者用来启动软件的`helm install`命令的Helm版本名称。
        + `Namespace`（字符串）-将安装Helm图表的Kubernetes命名空间。
        + `OverrideParameters`（对象数组）-将在启动应用程序的Helm命令中使用的参数。买家可以改写默认值。
          + `Key`（字符串）— 用点表示法表示的参数键（覆盖.example.key）。
          + `DefaultValue`（字符串）-此覆盖参数的默认值。

**响应语法**

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和，如下所示。`ChangeSetId` `ChangeSetArn`

```
{
  "ChangeSetId": "{{example123456789012abcdef}}",
   "ChangeSetArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/ChangeSet/{{example123456789012abcdef}}"
}
```

变更请求将被添加到队列中并进行处理，包括扫描集装箱图像和其他信息，以确保其符合[容器产品AWS Marketplace指南](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-policies.html)。此过程可能需要几分钟到几小时，具体取决于容器的数量和大小。

您可以通过，也可以使用 API 操作直接通过 Catalog API 检查请求的`[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)`状态。AWS Marketplace 管理门户

有关更改集的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。有关卖家商品变更集错误的更多信息，请参阅[更改集合状态和错误](work-with-seller-products.md#seller-product-change-set-errors)。

**异步错误**

以下错误特定于中的`UpdateDeliveryOptions`操作AWS Marketplace Catalog API。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 不兼容产品状态 | 使用现有的限量产品或公共产品。 | 
| 不兼容的服务 | 服务列表包含不兼容的服务。 [不兼容\_服务] 提供有效的兼容服务列表。 | 
| 未指定服务 | 提供至少 1 项兼容服务。 | 
| 复制兼容的 AWS\_SERVICES | 服务列表包含重复的条目。移除它们。每个条目都必须是唯一的。 | 
| 版本标题无效 | 删除商标符号前的空格。 | 
| 版本标题无效 | 删除以下不支持的字符：[x、y、z]  | 
| 版本标题无效 | 删除版本标题开头的空格。 | 
| 版本标题无效 | 提供少于 [x] 个字符的版本标题。 | 
| 重复版本标题 | 版本标题 [duplicate\_version\_title] 是重复的。移除或更改标题。 | 
| 无效的发行说明 | 删除商标符号前的空格。 | 
| 无效的发行说明 | 移除不支持的字符：[x、y、z]  | 
| 无效的发行说明 | 删除发行说明开头的空格。 | 
| 无效的发行说明 | 提供少于 (x) 个字符的发行说明。 | 
| 无效\_使用\_指令 | 删除商标符号前的空格。 | 
| 无效\_使用\_指令 | 移除不支持的字符：[x、y、z]  | 
| 无效\_使用\_指令 | 提供少于 (x) 个字符的使用说明。 | 
| 无效\_使用\_指令 | 提供使用说明。 | 
| 缺少容器镜像 | 提供至少 1 个容器镜像。 | 
| 容器图片太多了 | 提供少于 50 个容器镜像。 | 
| 复制容器镜像 | 容器镜像列表包含重复的图像：[duplicate\_images]。提供包含独特图片的列表。 | 
| 无效的容器镜像 | 为容器镜像提供有效的 URI。 | 
| INVALID\_CONTAINER\_IMAGE\_URI | 图片 [invalid\_image\_uri] 无权访问此产品。将图片上传到其相应的产品存储库。有关上传的信息，请参阅[容器产品入门](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html)。 | 
| INVALID\_CONTAINER\_IMAGE\_TAG | 避免使用 “最新” 标签。 | 
| 缺少配送选项编号 | 从现有的 ID 列表中提供配送选项。 | 
| 空配送选项编号 | 提供非空的配送选项 ID 列表。 | 
| 重复配送选项编号 | 重复的配送选项 ID：[duplicate\_ids]。提供唯一的配送选项 ID。 | 
| 重复配送选项标题 | 重复的配送选项标题：[重复标题]。移除重复项 | 
| 无效的配送选项标题 | 配送选项标题 [existing\_titles] 已经存在。请提供不同的标题。 | 
| 配送选项标题无效 | 提供少于 (x) 个字符的配送选项标题。 | 
| 空资源名称 | 提供资源名称。 | 
| 空资源网址 | 提供资源网址。 | 
| 资源名称无效 | 提供少于 256 个字符的资源名称。 | 
| 资源网址无效 | 提供少于 256 个字符的资源 URL。 | 
| 无效\_简短\_描述 | 请提供少于 1,000 个字符的简短描述。 | 
| 无效\_简短\_描述 | 提供简短的描述。 | 
| NO\_LICENSE\_SECRET\_KEY | 对于 Amazon EKS Anywhere 产品，请为许可证密钥提供 1 个覆盖参数。 DefaultValue的需求"${AWSMP\_LICENSE\_SECRET}"，请参见第节中的示例。 | 
| 没有服务账户配置 | 对于付费产品，请为服务帐号配置提供 1 个覆盖参数。DefaultValue的需求"${AWSMP\_SERVICE\_ACCOUNT}"，请参见第节中的示例。 | 
| SCAN\_ERROR | 修复图片 “[x]” 上的安全漏洞 “[y]”。 | 
| 字段\_不允许\_更改 | 字段 [x] 无法更改。 | 
| 无效的配送选项状态 | 配送选项 ID [invalid\_ids] 无效。在有限状态或公共状态下提供配送选项。 | 
| 未找到任何更改 | 提供至少 1 次更改。 | 
| 多版本更新 | 提供相同版本的配送选项 ID。 | 
| OVERRIDE\_PARAMETER\_KEYS\_CONTAINS\_PECIAL\_CHARS | 覆盖参数密钥 [invalid\_keys] 包含无效字符。您的密钥只能使用字母、数字、双引号 (” “) 和加号 (\+)。 | 
| 无效的容器镜像存储库 | 存储库 [invalid\_repositories] 无效。提供通过 AddRepositories 更改类型创建的存储库。 | 
| INVALID\_CONTAINER\_IMAGE\_TAG\_FORMAT | 容器镜像标签 [invalid\_image\_tag] 无效。提供符合 {CONTAINER\_IMAGE\_TAG\_REGEX} 正则表达式的标签。 | 
| DUPLICATE\_OVERRIDE\_PARAMETER\_KE | 覆盖参数包含重复的密钥 [duplicate\_keys]。删除重复项。 | 
| 不支持\_CONTAINER\_IMAGE\_URI | 不支持容器镜像 [unsupported\_image]。提供一张遵循镜[像清单 V 2、架构 1](https://docker-docs.uclv.cu/registry/spec/manifest-v2-1/) 的图片。 | 
| 无效的命名空间 | 命名空间值 [invalid\_namespaces] 无效。提供符合 {HELM\_RELEASE\_PARAM\_REGEX} 正则表达式的值。 | 
| 版本名称无效 | releaseName 值 [invalid\_release\_names] 无效。提供符合 {HELM\_RELEASE\_PARAM\_REGEX} 正则表达式的值。 | 
| 覆盖\_PARAMETER\_KEYS\_CONTAINS\_RESERVED\_PARAMETER\_KEYS | 交付选项标题 [invalid\_keys] 的覆盖参数密钥已保留。保留的密钥：[reserved\_param\_keys]。提供不同的密钥。 | 
| 不兼容的插件名称 | 插件名称 [provided\_name] 与现有名称不匹配。重复使用此插件的公共版本或先前版本中的现有名称。您只能为每种产品使用一个附加名称。 | 
| 不兼容\_ADDON\_NAMESPACE | 插件命名空间 [provided\_namespace] 与现有命名空间不匹配。重复使用此插件的公共版本或先前版本中的现有命名空间。每个产品只能使用一个插件命名空间。 | 

## 限制版本
<a name="container-restrict-version"></a>

您可以使用目录 API 在中限制基于容器的产品的某个版本。AWS Marketplace这会阻止新买家使用该版本。产品中必须至少有一个公开版本。您不能限制产品唯一剩余的公开可用版本。

要限制版本，请使用`RestrictDeliveryOptions`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**注意**  
限制一个版本中的一个或多个（但不是全部）配送选项将使买家无法使用这些选项。限制某个版本的所有交付选项会将该版本从AWS Marketplace目录中删除。  
目前不支持通过目录 API 限制 Amazon EKS 附加组件。  
受限版本仍可供现有客户使用。

**请求语法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "RestrictDeliveryOptions",
      "Entity":
      {
        "Identifier": "{{example1-abcd-1234-5ef6-7890abcdef12}}",
        "Type": "ContainerProduct@1.0"
      },
      "DetailsDocument":
      {
        "DeliveryOptionIds":
        [
          "{{example1-2222-cccc-2222-cccccccccccc}}"
        ]
      }
    }
  ]
}
```

为要添加`RestrictDeliveryOptions`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-您的基于容器的产品。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的产品将使用的配送方式（产品类型）：`ContainerProduct@1.0`。`Type`
+ `DetailsDocument`（对象）（必填）-请求的详细信息。它包括您想要限制的基于集装箱的商品的配送选项的 ID。
  + `DeliveryOptionIds`（字符串数组）-要限制的版本的 `DeliveryOption` ID 列表。您可以`DeliveryOption`通过对您限制的产品调用`DescribeEntity`操作来获取的唯一标识符。

**响应语法**

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和，如下所示。`ChangeSetId` `ChangeSetArn`

```
{
  "ChangeSetId": "{{example123456789012abcdef}}",
   "ChangeSetArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/ChangeSet/{{example123456789012abcdef}}"
}
```

变更请求被添加到队列中并进行处理。此过程可能需要几分钟到几小时。

您可以通过，也可以使用 API 操作直接通过 Catalog API 检查请求的`[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)`状态。AWS Marketplace 管理门户

有关更改集的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。有关卖家商品变更集错误的更多信息，请参阅[更改集合状态和错误](work-with-seller-products.md#seller-product-change-set-errors)。

**异步错误**

以下错误特定于中的`RestrictDeliveryOptions`操作AWS Marketplace Catalog API。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 不兼容产品状态 | 使用公共产品。 | 
| 缺少配送选项编号 | 从现有的 ID 列表中提供配送选项。 | 
| 无效的配送选项状态 | 配送选项 ID [invalid\_ids] 无效。提供公共州的配送选项。 | 
| 空配送选项编号 | 提供非空的配送选项 ID 列表。 | 
| 无效的最低限度公共配送选项 | 无法限制所有配送选项编号。 | 
| 重复配送选项编号 | 重复的配送选项 ID：[duplicate\_ids]。提供唯一的配送选项 ID。 | 