View a markdown version of this page

处理卖家商品 - AWS Marketplace

对 AWS Marketplace API 参考进行了重组。有关支持的 API 操作的更多信息,请参阅 AWS 市场 API 参考。

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

处理卖家商品

您可以使用自动执行AWS Marketplace Catalog API处理卖家商品的任务。这包括创建、更新、查看、列出和排序产品的功能。这使您能够实现产品管理的自动化。例如,您可以在上提供自助发布功能AWS Marketplace 管理门户。

商品是您打算销售的单位或资源AWS Marketplace,通常称为基础产品。在您添加产品信息、部署属性和账单信息之前,买家无法消费基础产品。

商品描述了您打算销售的商品的商品信息、软件部署属性和计费机制。商品必须与报价配对,才能成为您可以出售且买家可以使用的可交易单位。AWS Marketplace

您也可以AWS Marketplace Catalog API使用:

每种产品类型都有不同的产品实体。实体可以是产品或报价AWS Marketplace。支持以下产品类型和实体:

产品类型 实体
亚马逊机器映像 (AMI) 产品 AmiProduct@1.0
容器产品 ContainerProduct@1.0
软件即服务(SaaS)产品 SaaSProduct@1.0
机器学习 (ML) 产品 MachineLearningProduct@1.0
注意

Single-AMI 不支持CloudFormation产品类型、AWS Data Exchange数据产品和专业服务产品。

以下主题假设您有权访问 API 并已完成卖家的所有先决条件,如中所述的访问控制AWS MarketplaceCatalog API。

请参阅以下资源:

以下主题介绍如何使用目录 API 对您的单 AMI 产品、基于容器的产品或 SaaS 产品执行操作。

创建产品

注意

只有当您打算在AWS Marketplace目录中创建全新的产品实体时,才需要此更改类型。更新现有产品时不需要它。

您可以使用目录 API 创建带有标识符(产品代码和产品 ID)的 AMI、容器、机器学习或 SaaS 产品文档AWS Marketplace。

您可以通过使用CreateProduct更改类型调用 StartChangeSet API 操作来创建Draft处于状态的产品。

如果您的请求成功处理,则AWS Marketplace Catalog API会为您生成处于Draft状态的产品。这是一款不完整的商品,买家看不见AWS Marketplace。

然后,您可以使用Update变更类型来完成创建产品流程:UpdateInformationUpdateDimensions、UpdateTargeting、和UpdateVisibility。

商品完成后,您可以使用ReleaseProduct变更类型完成商品创建流程,然后发布报价。此过程验证整个产品并将产品移至Limited状态。

注意

有关使用创建商品的更多信息AWS Marketplace 管理门户,请参阅《AWS Marketplace卖家指南》中的以下主题:

如果您使用创建产品,则该产品将处于Staging状态。AWS Marketplace 管理门户

要创建处于Draft状态的产品,请使用CreateProduct更改类型调用 StartChangeSet API 操作,如以下示例所示。

请求语法

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType":"CreateProduct", "Entity":{ "Type": "SaaSProduct@1.0" // choose from ["AmiProduct@1.0", "ContainerProduct@1.0", "SaaSProduct@1.0", "MachineLearningProduct@1.0"] }, "DetailsDocument": { "ProductTitle": "Test product title set in CreateProduct" } } ] }

为字段提供信息以添加CreateProduct更改类型。此变更类型可以采用ProductTitle属性,但其限制与发送到UpdateInformation变更类型的限制相同。

  • Entity(对象)(必填)-正在创建的对象的命名类型。

    • Type(字符串)(必填)— 基于您的商品将使用的配送方式(产品类型):AmiProduct@1.0ContainerProduct@1.0、MachineLearningProduct@1.0或SaaSProduct@1.0。Type有关更多信息,请参阅 标识符。

  • DetailsDocument(对象)(必填)— 它可能为空。

    • ProductTitle(可选)-商品名称,最大长度为 72 个字符。请注意,您也可以稍后通过UpdateInformation更改类型来设置或更新商品名称。

响应语法

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

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

变更请求被添加到队列中并进行处理。

您可以通过,也可以使用 API 操作直接通过 Catalog API 检查请求的DescribeChangeSet状态。AWS Marketplace 管理门户

请求完成后(如果Status是SUCCEEDED),则会生成一个新的ProductId请求。

同步验证

以下架构验证特定于中的CreateProductAWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不符合以下要求,它将失败并显示 HTTP 响应。

输入字段 验证规则 HTTP 代码
ProductTitle (字符串) 最大长度:72 400
异步错误

以下错误特定于中的CreateProduct操作AWS Marketplace Catalog API。当您在处理更改集DescribeChangeSet之后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多详细信息,请参阅使用变更集。

错误代码 错误消息
INVALID_INPUT 在 ProductTitle 字段中发现了不恰当的内容 “{InappropriateContent}”。不 ProductTitle 提供任何不当内容。

更新产品详情

如果您已有产品AWS Marketplace,则可以使用目录 API 更新 AMI、容器、机器学习或 SaaS 产品的产品详细信息。

注意

有关使用更新商品详情的更多信息AWS Marketplace 管理门户,请参阅《AWS Marketplace卖家指南》中的以下主题:

要更新产品详情,请使用UpdateInformation更改类型和要更改的详细信息调用 StartChangeSet API 操作,如以下示例所示。

请求语法

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "UpdateInformation", "Entity": { "Identifier": "prod-example12345", "Type": "AmiProduct@1.0" }, "DetailsDocument": { "ProductTitle": "My Product Title", "ShortDescription": "My product short description.", "LongDescription": "My product longer description.", "Sku": "123example456", "LogoUrl": "https://awsmp-logos.s3.amazonaws.com/ca60b754fe05a24257176cdbf31c4e0d", "VideoUrls": [ "https://example.com/my-video" ], "Highlights": [ "123example45" ], "AdditionalResources": [ { "Text": "123example456", "Url": "https://example.com/some-link" } ], "SupportDescription": "Need help? Contact our experts at support@example.com \n\nYour purchase includes 24x7 support.", "Categories": [ "Operating Systems", "Network Infrastructure", "Application Development" ], "SearchKeywords": [ "123example456" ] } } ] }

为要添加UpdateInformation更改类型的字段提供信息:

  • Entity(对象)(必填)-正在创建的实体的命名类型。

    • Identifier(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。

    • Type(字符串)(必填)— 基于您的商品将使用的配送方式(产品类型):AmiProduct@1.0ContainerProduct@1.0、MachineLearningProduct@1.0、或SaaSProduct@1.0。Type

  • DetailsDocument(object)(必填)-请求的详细信息,包括您要更新的产品信息。每个字段都是可选的,但必须至少包含一项更改才能更新。

    • ProductTitle(字符串)-要向买家显示的商品名称。

    • ShortDescription(字符串)-要向买家展示的商品关键方面的描述。这通常是 2-3 句话。

    • LongDescription(字符串)-要向买家显示的商品的较长描述。这通常是 1-3 段。

    • Sku(字符串或空值)-您定义为供自己使用的参考的自由格式字符串。null用于取消设置此字段。

    • LogoUrl(字符串)— 可公开访问的亚马逊简单存储服务 (Amazon S3) 存储桶中图片的网址。有关更多信息,请参阅公司和产品徽标要求。

    • VideoUrls(字符串数组)— 公开可用的外部托管视频的网址列表,这些视频将在您的商品信息中作为对买家的参考提供。

      注意

      目前,在数组中AWS Marketplace支持一个 URL。

    • Highlights(字符串数组)-关键产品功能的简短标注列表。

    • AdditionalResources(结构数组)-用于了解您的产品的其他资源的参考列表。每个参考文献都由一个文本名称和一个 URL 组成:

      • Text(字符串)-资源的名称或标题。

      • Url(字符串)-可能有助于买家了解您的商品的资源网址。

    • SupportDescription(字符串)-有关您为产品提供的支持服务的详细信息。

    • Categories(字符串数组)-描述您的产品的AWS Marketplace已定义产品类别列表。有关更多信息,请参阅《AWS Marketplace买家指南》中的商品类别。

    • SearchKeywords(字符串数组)-用于增强搜索体验的商品关键字列表。卖家名称、商品名称和商品类别会自动包含在搜索关键词中,无需在此处重复。

注意

最初填充产品的产品信息(元数据)时,您需要在UpdateInformation变更类型的DetailsDocument对象中提供以下所有内容:ProductTitle、、、、ShortDescription、LongDescription、LogoUrl、HighlightsAdditionalResources、SupportDescriptionCategories、和SearchKeywords。Draft

如果在CreateProduct更改类型期间已经提供了,则ProductTitle可以将其省略。但是,在更新产品上的现有字段时,只能在变更类型的DetailsDocument对象中包含需要UpdateInformation更改的属性。

响应语法

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

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

变更请求被添加到队列中并进行处理。

要检查请求状态,请使用AWS Marketplace 管理门户或调用 DescribeChangeSet API。

同步验证

以下架构验证特定于中的UpdateInformationAWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不符合以下要求,它将失败并显示 HTTP 响应。

输入字段 验证规则 HTTP 代码
字符串(常规) 没有控制字符 “\\ x00-\\ x08\\ x0B-\\ x1F” 400
ProductTitle (字符串) 最大长度:72

必填

400
ShortDescription (字符串) 最大长度:1000

必填

400
LongDescription (字符串) 最大长度:5000

必填

400
Sku(字符串) 最大长度:100

可选

400
LogoUrl (字符串)

网址模式:

^ https://(www\.)? [-a-z A-Z0-9@。] {1,256}\。 [a-z A-Z0-9 ()] {2,63}\ b ([-a-za-@+./] *) Z0-9

必填

400
VideoUrls (字符串数组)

网址模式:

https://(www\\。)? [-a-z A-Z0 -9@._] {1,256}\\。 [a-z A-Z0-9 ()] {2,63}\\ b ([-a-z A-Z0-9 @_ +.\/]

可选

400
亮点(字符串数组) 必填项:最小 1-最大 3 400
AdditionalResources (结构数组) 最大长度:500

可选

400
SupportDescription (字符串) 最大长度:2000

必填

400
类别(字符串数组) 最小 1-最大 3

必填

400
SearchKeywords (字符串数组) 最小 1-最大 15

每件物品最多 50 个字符

必填

400

异步错误

以下错误特定于中的UpdateInformation操作AWS Marketplace Catalog API。当您在处理更改集DescribeChangeSet之后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。

错误代码 错误消息
缺少数据 未提供用于执行更新的数据。为商品的至少 1 个字段提供数据。
INVALID_INPUT 提供 LogoUrl。
INVALID_INPUT 提供 ProductTitle。
INVALID_INPUT 提供 ShortDescription。
INVALID_INPUT 提供 LongDescription。
INVALID_INPUT 提供 SupportDescription。
INVALID_INPUT 至少提供一个搜索关键词。
INVALID_INPUT 至少提供一个亮点。
INVALID_INPUT 提供 1 到 3 个商品类别。
INVALID_INPUT 在 ProductTitle 字段中发现了不恰当的内容 “{InappropriateContent}”。不 ProductTitle 提供任何不当内容。
INVALID_INPUT 在 ShortDescription 字段中发现了不恰当的内容 “{InappropriateContent}”。不 ShortDescription 提供任何不当内容。
INVALID_INPUT 在 LongDescription 字段中发现了不恰当的内容 “{InappropriateContent}”。不 LongDescription 提供任何不当内容。
INVALID_INPUT 在 SupportDescription 字段中发现了不恰当的内容 “{InappropriateContent}”。不 SupportDescription 提供任何不当内容。
INVALID_INPUT ProductTitle 字段无效。删除商标符号前的空格。
INVALID_INPUT ShortDescription 字段无效。删除商标符号前的空格。
INVALID_INPUT LongDescription 字段无效。删除商标符号前的空格。
INVALID_INPUT SupportDescription 字段无效。删除商标符号前的空格。
INVALID_INPUT ProductTitle 字段无效。移除不支持的字符 [UnsupportedCharacters]。
INVALID_INPUT ShortDescription 字段无效。移除不支持的字符 [UnsupportedCharacters]。
INVALID_INPUT LongDescription 字段无效。移除不支持的字符 [UnsupportedCharacters]。
INVALID_INPUT SupportDescription 字段无效。移除不支持的字符 [UnsupportedCharacters]。
INVALID_INPUT 搜索关键词的组合字符数不得超过 250 个。
INVALID_INPUT 无法读取此更改类型的输入。提交格式正确的输入。
无效的额外资源 [InvalidAdditionalResourcesUrls] 中的 AdditionalResources无效 URL 请提供有效的 URL。
类别名称无效 提供支持的有效类别名称AWS Marketplace。
InvalidImageProperties 发现验证错误:文件不是图像类型。支持的图像类型:[png|jpg|gif]。
显式内容 露骨内容:检测到 '{ExplicitContent}'。向媒体提供不含露骨内容的内容。
无效的媒体 URL 无效:{MediaUrl} 为存储在 S3 中的媒体提供一个新的 URL。
无效的媒体 无效网址:{MediaUrl} 请提供不超过 2048 个字符的有效网址。
无效的媒体 提供的位置不可访问:{MediaUrl} 为存储在 S3 中的媒体提供可访问的 URL。
无效的媒体 从 S3 复制媒体时出现问题。图像大小超过 5 MB。请提供小于 5 MB 的图片。
无效的媒体 在媒体中检测到恶意软件。请重新提交没有恶意软件的媒体。
媒体太多了 提供不超过 15 件媒介类商品。
复制媒体 产品不允许使用重复的媒体。请提供没有重复内容的媒体。

添加定价维度

您可以使用 AWS Marketplace 目录服务操作来添加可计费的定价维度,使您能够向用户收取 AMI、容器或 SaaS 产品的费用。

定价维度是卖家为向买家收费而定义的计量单位。无论是基于使用量的定价模式还是基于合同的定价模式,卖家都必须设置此信息才能向买家收取使用产品的账单。维度的类型取决于产品的定价模型。

注意

对于采用免费定价模式的 SaaS 产品,您必须使用 UsageBasedPricingTerm 或创建至少一个维度 ConfigurableUpfrontPricingTerm,并且所有维度的定价必须为 0.00 美元。此要求是 SaaS 产品所独有的,不适用于 AMI、容器或机器学习产品。

注意

新的定价维度会对 SaaS 购买者产生以下影响:

  • 对于通过公开报价创建协议的买家,您可以报告新维度的消费,即使协议创建时报价中不存在这些维度。

  • 对于通过私密报价创建协议的买家,您无法报告新维度的消费,因为在创建协议时,私募报价中不存在这些维度。调用 BatchMeterUsageAPI 会成功,但不会向买家收费,因此您必须跟踪哪些买家可以和不能为任何新维度收费。您还可以使用 GetAgreementTermsAPI 查看每份买家协议中包含的维度。

    要报告新维度的消费并向买家开具账单,您必须延长包含该维度的换货报价,并且买家必须接受该报价。

有关产品定价的更多信息,请参阅《AWS Marketplace卖家指南》中的以下主题:

有关使用添加定价维度的更多信息AWS Marketplace 管理门户,请参阅《AWS Marketplace卖家指南》中的以下主题:

要添加定价维度,请使用AddDimensions更改类型调用 StartChangeSet API,如以下示例所示。

注意

在提交第一个AddDimensions变更类型并指定定价模型类型(使用量、合同或消费合同)后,您必须与AWS Marketplace卖家运营团队合作。它们可以帮助您添加类型超出原始定价模型的维度。

请求语法

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "AddDimensions", "DetailsDocument": [ { "Description": "Description of the dimension", "Key": "UniqueApiKey", "Unit": "HostHrs", "Name": "First Dimension", "Types": [ "ExternallyMetered" ] } ], "Entity": { "Identifier": "prod-example12345", "Type": "SaaSProduct@1.0" } } ] }

为AddDimensions变更类型提供以下字段。

  • DetailsDocument(对象数组)(必填)-请求的详细信息。

    • Description(字符串)(必填)-买家查看页面上将作为详细描述的尺寸的完整详细信息。

    • Key(字符串)(必填)— 输入将用于定义报价中费率的分面。此外,如果无法从外部计量维度,请输入发布到 AWS Marketplace Metering Service (MMS) 的维度。创建维度后,无法更改。

    • Units(字符串)(必填)-维度的单位类型。可能的单位包括用户、主机、GB、MB、TB、Gbps、Mbps、请求、单位、 UserHrs、 UnitHrs、、单位、 HostHrs TierHrs、和。 TaskHrs

    • Name(字符串)(必填)-网站和客户账单上维度的显示名称。

      • Types(字符串数组)(必填)(也称为标签)-它们表示维度是涵盖计量、授权还是支持外部计量。创建维度后,此值不可更改。

        • Metered— 表示应创建商务平台使用类型以允许对该维度进行计量。

        • ExternallyMetered— 表示应在发布期间创建AWS Marketplace计量服务 (MMS) 维度,以允许卖家通过 AWS SDK 进行计量。

        • Entitled— 表示可以在产品或优惠发布期间为该维度授予权利。

          下表列出了支持的定价维度和产品组合。

          定价维度类型 产品类型
          [Metered] AMI
          [Metered, ExternallyMetered] SaaS, AMI/Flexible 消费定价 (FCP)

          ExternallyMetered出现时,Metered是 masked/inferred。

          [Entitled] SaaS 合同、 ProServ 产品

          Entitled标签授予使用 software/service 开始和结束日期的权利。此外,授予获得 AMI 年度产品使用折扣的权利。每项权利都由AWS Marketplace Entitlement Service用于创建或更新权利的 in 标识。Dimension Key

          [Metered, ExternallyMetered, Entitled] 具有消费定价的合同是 [ExternallyMetered] 和 [Entitled] 的组合,其中尺寸可以预付费或计量。
  • Entity(对象)(必填)-正在创建的实体的命名类型。

    • Identifier(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。

    • Type(字符串)(必填)— 基于您的商品将使用的配送方式(产品类型):AmiProduct@1.0或SaaSProduct@1.0。Type

响应语法

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace准则。验证过程可能需要几分钟到几小时不等。

您可以通过,也可以使用 API 操作直接通过 Catalog API 检查请求的DescribeChangeSet状态。AWS Marketplace 管理门户

同步验证

以下架构验证特定于中的AddDimensionsAWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不符合以下要求,它将失败并显示 HTTP 响应。

输入字段 验证规则 HTTP 代码
说明 最大长度:1000

必填

400
Key 最大长度:100

图案:[A-Za-z0-9_.-] +$

必填

400
尺寸单位 最大长度:20

必填

400
Name 最大长度:500

必填

400
类型(标签)

必填项:最小 1-最大 3

输入:已授权、按流量计量、 ExternallyMetered

必填

400

异步错误

以下错误特定于中的AddDimensions操作AWS Marketplace Catalog API。当您在处理更改集DescribeChangeSet之后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。

错误代码 错误消息
缺少数据 未提供用于执行更新的数据。提供至少 1 个维度的数据。
无效维度 提供的维度不超过 200 个。
无效维度 无法添加重复的尺寸。
无效维度 无法在当前状态 “%s” 下添加维度。支持维度更新的州为 %s。
无效维度 无法添加维度。字段 “%s” 在其他维度中有重复的值 “%s”。
无效维度 为每个维度提供非空字段(密钥、单位、名称、类型)。
IINVALID_TYPE 移除无效的类型 “%s”。有效类型为 ["计量”、“已授权”、ExternallyMetered “]。
无效单位 移除无效的单元 “%s”。有效单位为 [“GB”、“Gbps”、“”、HostHrs “主机”、“MB”、“Mbps”、“请求”、“”、“TB”、TaskHrs “”、“”、TierHrs “”、“”、UnitHrs “单位”、“”、“”、UserHrs “用户”]。
INVALID_INPUT 在 %s 字段中找到不当内容 “%s”。请不要向 %s 提供任何不当内容。
INVALID_INPUT “%s” 字段无效。删除商标符号前的空格。
INVALID_INPUT “%s” 字段无效。删除不支持的字符 %s。
无效维度 移除无效的维度类型组合 %s。允许的值为 %s。
无效维度 移除按流量计量维度的无效维度密钥 “%s”。
无效维度 产品代码 “%s” 中名为 “%s” 的维度未通过AWS Marketplace计量服务验证 %s。
无效维度 产品代码 “%s” 中名为 “%s” 的维度在计量服务中没有计量记录。该产品要么从未启动进行测试,要么配置不正确,没有对AWS Marketplace计量服务进行适当的调用。

更新定价维度

您可以使用目录 API 更新中 AMI、容器或 SaaS 产品的现有定价维度AWS Marketplace。

每个维度都由执行更新的维度键和维度类型唯一标识。更新维度不会影响原始维度创建的任何在售商品或客户。

注意

有关使用更新定价维度的更多信息AWS Marketplace 管理门户,请参阅《AWS Marketplace卖家指南》中的以下主题:

要更新定价维度,请使用UpdateDimensions更改类型调用 StartChangeSet API 操作,如以下示例所示。

请求语法

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "UpdateDimensions", "DetailsDocument": [ { "Key": "UniqueApiKey", "Types": [ "ExternallyMetered" ], "Name": "First Dimension", "Description": "Description of the dimension" } ], "Entity": { "Identifier": "prod-example12345", "Type": "SaaSProduct@1.0" } } ] }

使用以下字段作为UpdateDimensions更改类型:

  • DetailsDocument(对象数组)(必填)-请求的详细信息。

    • Key(字符串)(必填)-提供产品中现有维度的密钥以更改描述和名称。对于UpdateDimension,此字段仅用于标识要更改的尺寸。

    • Types(字符串数组)(必填)(也称为标签)-它们表示维度是涵盖计量、授权还是支持外部计量。创建维度后,此值不可更改。

      • Metered— 表示应创建商务平台使用类型以允许对该维度进行计量。

      • ExternallyMetered— 表示应在发布期间创建AWS Marketplace Metering Service(彩信)维度,以允许卖家通过 AWS SDK 进行计量。

      • Entitled— 表示可以在 product/offer发布期间为维度授予权限。

        有效的定价维度类型组合
        定价维度类型 产品
        [Metered] AMI
        [ExternallyMetered] SaaS, AMI/Flexible 消费定价 (FCP)

        ExternallyMetered出现时,Metered 为。 masked/inferred

        [Entitled] SaaS 合同、 ProServe 产品

        该Entitled标签授予使用 software/service 设定的开始和结束日期的权利。此外,授予获得 AMI 年度产品使用折扣的权利。每项权利都由AWS Marketplace Entitlement Service用于创建或更新权利的维度密钥标识。

        [ExternallyMetered, Entitled] 使用消费定价的合同是 [] 和 [ExternallyMetered] 的组合,其中可以预付费或计量维度。Entitled
    • Description(字符串)(可选)-买家查看页面上将作为详细描述的维度的完整描述。

    • Name(字符串)可选-在网站和客户账单上显示维度的名称。

  • Entity(对象)(必填)-正在创建的实体的命名类型。

    • Identifier(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。

    • Type(字符串)(必填)— 基于您的商品将使用的配送方式(产品类型):AmiProduct@1.0或SaaSProduct@1.0。Type

响应语法

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

您可以通过,也可以使用 API 操作直接通过 Catalog API 检查请求的DescribeChangeSet状态。AWS Marketplace 管理门户

同步验证

以下架构验证特定于中的UpdateDimensionsAWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不符合以下要求,它将失败并显示 HTTP 响应。

输入字段 验证规则 HTTP 代码
说明

最大长度:1000

必填

400
Key

最大长度:100

图案:[A-Za-z0-9_.-] +$

必填

400
Name

最大长度:5

必填

400
类型(标签)

必填项:最小 1-最大 3

输入:Entitled、Metered、ExternallyMetered

必填

422

异步错误

以下错误特定于中的UpdateDimensions操作AWS Marketplace Catalog API。当您在处理更改集DescribeChangeSet之后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。

错误代码 错误消息
INVALID_INPUT “%s” 字段无效。删除商标符号前的空格。
INVALID_INPUT “%s” 字段无效。删除不支持的字符 %s。
无效维度 为每个维度提供非空字段(KeyTypes、、Name and/orDescription)。
无效维度 无法更新维度。该字段Name在其他维度中有重复的值 “%s”。
无效维度 无法使用密钥 “%s” 更新同一个维度,并在同一个请求中多次键入 “%s”。
无效维度 无法限制尺寸。类型为 “%s” 的维度密钥 “%s” 不存在。
无效维度 无法更新维度。维度键 “%s” 是Metered。
无效维度 无法为已经受限的维度更新尺寸。

限制定价维度

您可以使用目录 API 来限制中 AMI 或 SaaS 产品的现有定价维度AWS Marketplace。

每个维度都由执行更新的维度键和维度类型唯一标识。限制维度不会影响原始维度创建的任何在售商品或客户。

要限制定价维度,请使用RestrictDimensions更改类型调用 StartChangeSet API。

注意

定价维度限制仅在产品处于草稿状态时可用。一旦产品进入有限状态或公共状态,就不允许进行更改。

以下示例说明如何限制 SaaS 产品的Entitled维度。

请求语法

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "RestrictDimensions", "DetailsDocument": [ { "Key": "UniqueApiKey", "Types": ["Entitled"] } ], "Entity": { "Identifier": "prod-example12345", "Type": "SaaSProduct@1.0" } } ] }

使用以下字段作为RestrictDimensions更改类型:

  • DetailsDocument(对象数组)(必填)-请求的详细信息。

    • Key(字符串)(必填)-提供产品中现有维度的密钥以更改描述和名称。对于RestrictDimensions,此字段仅用于标识要更改的尺寸。

    • Types(字符串数组)(必填)(也称为标签)-它们表示维度是涵盖计量、授权还是支持外部计量。创建维度后,此值不可更改。

      • ["ExternallyMetered", "Entitled"]— 对于SaaS合同,您只能将这些类型与可以预付费或计量的消费定价相结合。

      • ["Metered"]— 有关 AMI 产品的小时定价维度。表示应创建商务平台使用类型以允许对该维度进行计量。

      • ["ExternallyMetered"]— 适用于 AMI、容器和 SaaS 产品的灵活消费定价维度(也称为自定义计量)。表示应在发布期间创建 M AWS arketplace 计量服务 (MMS) 维度,以允许卖家通过 AWS SDK 进行计量。

      • ["Entitled"]— 有关 SaaS 合同和专业服务产品的合同定价维度。此标签授予使用软件或服务的权利,设置使用开始和结束日期,并授予 AMI 年度产品的使用折扣权。每项权利都由AWS Marketplace Entitlement Service用于创建和更新权利的维度密钥标识。密钥表示可以在产品和优惠发布期间为该维度授予权限。

  • Entity(对象)(必填)-正在创建的实体的命名类型。

    • Identifier(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。

    • Type(字符串)(必填)— 基于您的商品的配送方式(产品类型):AmiProduct@1.0或SaaSProduct@1.0。Type

响应语法

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

您可以通过或调用 DescribeChangeSet API 来AWS Marketplace 管理门户检查请求的状态。

同步验证

以下架构验证特定于中的RestrictDimensionsAWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不符合以下要求,它将失败并显示 HTTP 响应。

输入字段 验证规则 HTTP 代码
说明

最大长度:1000

必填

400
Key

最大长度:100

图案:[A-Za-z0-9_.-] +$

必填

400
Name

最大长度:5

必填

400
类型(标签)

必填项:最小 1-最大 3

输入:Entitled、Metered、ExternallyMetered

必填

400

异步错误

以下错误特定于中的RestrictDimensions操作AWS Marketplace Catalog API。当您在处理更改集时调用DescribeChangeSet时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。

错误代码 错误消息
INVALID_INPUT “%s” 字段无效。删除商标符号前的空格。
INVALID_INPUT “%s” 字段无效。删除不支持的字符 %s。
无效维度 类型为 “%s” 的维度键 “%s” 已受到限制
无效维度 无法限制尺寸。类型为 “%s” 的维度密钥 “%s” 不存在
无效维度 无法限制重复的尺寸。
无效维度 所有已授权的维度都不能受到限制。必须至少有一个有效的授权维度。
无效维度 类型为 “%s” 的维度键 “%s” 与另一个不同类型的维度 “%s” 相关联。必须同时限制同一个密钥的两个维度才有效。

更新定位配置

您可以使用目录 API 来添加允许在 AMI、容器、机器学习或 SaaS 产品进入Public状态AWS Marketplace之前通过调用UpdateTargeting更改类型来查看 AMI、容器、机器学习或 SaaS 产品的 AWS 账户 ID。

创建新产品时,托管目录操作 (MCO) 帐户会自动添加到允许的帐户列表中。卖家在查看允许的账户时可以在AWS Marketplace管理门户 (AMMP) 和 DescribeEntity API 响应Targeting部分看到这些 MCO 账户。

注意

有关使用添加AWS 账户编号的更多信息AWS Marketplace 管理门户,请参阅《AWS Marketplace卖家指南》中的以下主题:

要添加允许查看 AMI、容器、机器学习或 SaaS 产品的 AWS 账户 ID,请使用UpdateTargeting更改类型调用 StartChangeSet API 操作,如以下示例所示。

请求语法

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "UpdateTargeting", "Entity": { "Type": "SaaSProduct@1.0", "Identifier": "prod-example12345" }, "DetailsDocument": { "PositiveTargeting": { "BuyerAccounts": [ "1112223334444" ] } } } ] }

将以下字段与UpdateTargeting更改类型一起使用。

  • Entity(对象)(必填)-正在创建的实体的命名类型。

    • Identifier(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。

    • Type(字符串)(必填)— 基于您的商品将使用的配送方式(产品类型):AmiProduct@1.0MachineLearningProduct@1.0、或SaaSProduct@1.0。Type

  • DetailsDocument(对象)(必填)-运行所需的详细信息 ChangeSet。

    • PositiveTargeting(object)(可选)— 正面定位定义了任何买家的个人资料都应满足的标准,才允许他们访问报价。此字段为可选字段,但如果存在此字段,则应至少提供一个定位选项。

      • BuyerAccounts(字符串数组)(可选)— 列为允许基于 AWS 账户进行定向的选项(也称为私募优惠)。如果目的不是将报价定向 AWS 账户,则应省略此字段。

响应语法

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

要检查请求状态,请使用AWS Marketplace 管理门户或调用 DescribeChangeSet API。

请求完成后(如果Status是SUCCEEDED),则会生成一个新的ProductId请求。

同步验证

以下架构验证特定于中的UpdateTargetingAWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不符合以下要求,它将失败并显示 HTTP 响应。

定位类型 有效的当前可见性状态 BuyerAccounts (输入) Check
积极 公开Limited、或 Draft

12 位数的 AWS 账户 ID 字符串数组。

最小尺寸:0。

最大尺寸:5000。

输入的内容必须与当前文档的目标账户不同。

输入必须有效AWS 账户。

异步错误

以下错误特定于中的DescribeChangeSet操作AWS Marketplace Catalog API。当您在处理更改集DescribeChangeSet之后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。

错误代码 错误消息
商品可见性无效 使用现有的公共Draft产品Limited或产品。
无效_ S AWS_ACCOUNT_ID 提供有效的AWS 账户身份证件。 AWS 账户未找到:[x, y, z]。
ValidationException 专业服务产品没有许可名单。与其他产品类型不同,有限状态下的专业服务产品无需许可名单即可扩展到任何买家。

更新产品知名度

您可以使用目录 API 更新中 AMI、容器、机器学习或 SaaS 产品的可见性(也称为生命周期状态)AWS Marketplace。

注意

有关使用更新商品知名度的更多信息AWS Marketplace 管理门户,请参阅《AWS Marketplace卖家指南》中的以下主题:

允许的目标生命周期状态为LimitedPublic、或Restricted。

Limited

产品已完成并已成功完成ReleaseProductChangeType。在此状态下,卖家可以查看商品详情。该产品未公开。但是,卖家可以定位特定的买家以允许他们预览商品。

Public

该产品在中可见AWS Marketplace。买家可以查看和订阅该产品。

Restricted

该产品不再对公众可见,也不接受新的订阅者。现有订阅者可以继续使用此产品,直到其订阅到期。

注意

UpdateVisibility变更类型需要AWS Marketplace卖家运营团队进行手动审查,这会导致执行时间延长。在自己的零钱套装中UpdateVisibility单独使用。

要更新产品的可见性,请使用UpdateVisibility更改类型调用 StartChangeSet API 操作,如以下示例所示。

请求语法

什么时候TargetVisibility是Public或Limited。

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "UpdateVisibility", "Entity": { "Type": "SaaSProduct@1.0", "Identifier": "prod-example12345" }, "DetailsDocument": { "TargetVisibility": "Public" } } ] }

因为什么时候TargetVisibility是Restricted。

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "UpdateVisibility", "Entity": { "Type": "SaaSProduct@1.0", "Identifier": "prod-example12345" }, "DetailsDocument": { "TargetVisibility": "Restricted", "ReplacementProductId": "prod-example54321" } } ] }

为字段提供信息以添加UpdateVisibility更改类型。

  • Entity(对象)(必填)-正在创建的实体的命名类型。

    • Identifier(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。

    • Type(字符串)(必填)— 基于您的商品将使用的配送方式(产品类型):AmiProduct@1.0、SaaSProduct@1.0、ContainerProduct@1.0、MachineLearningProduct@1.0。Type有关更多信息,请参阅 标识符。

  • DetailsDocument(对象)(必填)-运行所需的详细信息ChangeSet。

      • TargetVisibility— 产品预期的新知名度。

        可能的值:Public、Limited 和 Restricted

      • ReplacementProductId(字符串)(可选)-要使用的产品的替换产品编号Restricted。用于通知当前订阅者有关产品限制的信息。

        仅接受RestrictedTargetVisibility。

同步验证

以下架构验证特定于中的UpdateVisibilityAWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不符合以下要求,它将失败并显示 HTTP 响应。

定位类型 有效的当前状态 ReplacementProductId (输入) 验证检查
Public Limited 和 Restricted 不允许 有效的当前状态
Limited 公众和 Restricted 不允许 有效的当前状态
Restricted 公众和 Limited 字符串(可选) ReplacementProductId 必须属于现有产品Limited或公共产品。

触发此更改类型后,最多可能需要 37 天才能完成。这包括AWS Marketplace卖家运营团队需要审查、审计和批准的时间。限制商品时,在AWS Marketplace卖家运营团队开始审计之前CancelChangeSet,您有 24 小时的时间通过致电来改变主意。有关更多信息,请参阅 CancelChangeSet。

响应语法

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

您可以通过,也可以使用 API 操作直接通过 Catalog API 检查请求的DescribeChangeSet状态。AWS Marketplace 管理门户

请求完成后(如果Status是SUCCEEDED),则会生成一个新的ProductId请求。

异步错误

以下错误特定于中的UpdateVisibility操作AWS Marketplace Catalog API。当您在处理更改集DescribeChangeSet之后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。

错误代码 错误消息
产品状态无效 使用现有的PublicLimited、或Restricted产品。
目标可见性无效 提供有效的目标可见性状态:PublicLimited、或Restricted。
空目标可见性 提供有效的目标可见性状态:PublicLimited、或Restricted。
无效的替换商品编码 使用现有Limited产品Public或产品作为替代品。
无效的替换商品编码 替换商品编码仅在限制商品时有效。
审计错误 根据 MCO 手动审核而有所不同。
缺少卖家个人资料信息 在将商品更新为 “公开” 之前,您必须向卖家账户添加公开个人资料。

发布产品

您可以使用目录 API 将 Draft AMI、容器、机器学习或 SaaS 产品发布到Limited状态AWS Marketplace。

注意

对于AmiProduct@1.0和SaaSProduct@1.0,ReleaseProduct变更类型必须附有为此产品创建的相应草稿公共Offer@1.0实体上的ReleaseOffer变更类型。

要发布产品,请使用ReleaseProduct更改类型调用 StartChangeSet API 操作,如以下示例所示。

请求语法

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "ReleaseProduct", "Entity": { "Type": "SaaSProduct@1.0", "Identifier": "prod-example12345" }, "DetailsDocument": {} } ] }

为要添加到ReleaseProduct更改类型的字段提供信息。此更改类型不使用任何参数负载。

  • Entity(对象)(必填)-正在创建的实体的命名类型。

    • Identifier(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。

    • Type(字符串)(必填)— 基于您的商品将使用的配送方式(产品类型):AmiProduct@1.0、SaaSProduct@1.0、ContainerProduct@1.0、MachineLearningProduct@1.0。Type有关更多信息,请参阅 标识符。

  • DetailsDocument(对象)(必填)-必须是空对象。变更类型ReleaseProduct不接受任何细节。

响应语法

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

您可以通过,也可以使用 API 操作直接通过 Catalog API 检查请求的DescribeChangeSet状态。AWS Marketplace 管理门户

请求完成后(如果Status是SUCCEEDED),则会生成一个新的ProductId请求。

异步错误

以下错误特定于中的ReleaseProduct操作AWS Marketplace Catalog API。当您在处理更改集DescribeChangeSet之后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。

错误代码 错误消息
验证失败 提供描述信息。
验证失败 提供版本信息。
验证失败 提供尺寸信息。
验证失败 提供描述| PromotionalResources | SupportInformation 信息。

查找您的产品编号

您必须先获取产品的产品编码,然后才能使用AWS Marketplace目录 API 对其进行修改。有两种方法可以找到服务器产品的产品 ID:

  • 打开AWS Marketplace 管理门户并使用您的卖家账户登录。从 “产品” 菜单中选择 “服务器产品”,然后选择您感兴趣的产品。产品 ID 列在 “产品一览” 部分。

  • 使用带EntityTypeAmiProduct或ContainerProduct、SaaSProductMachineLearningProduct、或的ListEntities操作DataProduct,通过目录 API 获取产品列表,包括其产品 ID。 ListEntities要求您不包括实体类型的版本(例如AmiProduct@1.0)。

注意

产品编号仅在您的产品发布后才可用,并且至少您自己可以在中看到AWS Marketplace。首次创建商品时,可能需要几天时间才能完成审核和完全创建。在此期间,它将没有可用的产品编号。

以下主题说明了如何通过筛选实体 ID、产品标题、上次修改日期或可见性来查找产品。

根据产品标题查找产品

请求

POST /ListEntities HTTP/1.1 Content-Type: application/json { "Catalog": "AWSMarketplace", "EntityType": "AmiProduct", "MaxResults": 10, "EntityTypeFilters": { "AmiProductFilters": { "ProductTitle": { "WildCardValue": "XYZ" } } } }

响应

HTTP/1.1 200 Content-type: application/json { "EntitySummaryList": [ { "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example-abcd-1234", "EntityId": "example1-abcd-1234-5ef6-7890abcdef12@1", "EntityType": "AmiProduct", "LastModifiedDate": "2018-02-27T13:45:22Z", "AmiProductSummary": { "ProductTitle": "ABC-XYZ-123", "Visibility": "Public" } } ], "NextToken": "" }

根据上次修改日期查找产品

请求

POST /ListEntities HTTP/1.1 Content-Type: application/json { "Catalog": "AWSMarketplace", "EntityType": "AmiProduct", "MaxResults": 10, "EntityTypeFilters": { "AmiProductFilters": { "LastModifiedDate": { "DateRange": { "BeforeValue": "2018-03-27T13:45:22Z", "AfterValue": "2018-01-27T13:45:22Z" } } } } }

响应

HTTP/1.1 200 Content-type: application/json { "EntitySummaryList": [ { "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example-abcd-1234", "EntityId": "example1-abcd-1234-5ef6-7890abcdef12@1", "EntityType": "AmiProduct", "LastModifiedDate": "2018-02-27T13:45:22Z", "AmiProductSummary": { "ProductTitle": "ABC-XYZ-123", "Visibility": "Public" } } ], "NextToken": "" }

根据产品知名度查找产品

请求

POST /ListEntities HTTP/1.1 Content-Type: application/json { "Catalog": "AWSMarketplace", "EntityType": "AmiProduct", "MaxResults": 10, "EntityTypeFilters": { "AmiProductFilters": { "Visibility": { "ValueList": [ "Public" ] } } } }

响应

HTTP/1.1 200 Content-type: application/json { "EntitySummaryList": [ { "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example-abcd-1234", "EntityId": "example1-abcd-1234-5ef6-7890abcdef12@1", "EntityType": "AmiProduct", "LastModifiedDate": "2018-02-27T13:45:22Z", "AmiProductSummary": { "ProductTitle": "ABC-XYZ-123", "Visibility": "Public" } } ], "NextToken": "" }

根据产品标题、上次修改日期和产品知名度查找产品

请求

POST /ListEntities HTTP/1.1 Content-Type: application/json { "Catalog": "AWSMarketplace", "EntityType": "AmiProduct", "MaxResults": 10, "EntityTypeFilters": { "AmiProductFilters": { "LastModifiedDate": { "DateRange": { "BeforeValue": "2018-03-27T13:45:22Z", "AfterValue": "2018-01-27T13:45:22Z" } }, "Visibility": { "ValueList": [ "Public" ] }, "ProductTitle": { "ValueList": [ "ABC-XYZ-123" ] } } } }

响应

HTTP/1.1 200 Content-type: application/json { "EntitySummaryList": [ { "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example-abcd-1234", "EntityId": "example1-abcd-1234-5ef6-7890abcdef12@1", "EntityType": "AmiProduct", "LastModifiedDate": "2018-02-27T13:45:22Z", "AmiProductSummary": { "ProductTitle": "ABC-XYZ-123", "Visibility": "Public" } } ], "NextToken": "" }

获取有关产品的更多详细信息

您可以使用带有DescribeEntity操作的实体 ID 来获取有关产品的更多详细信息。

请求

GET /DescribeEntity?catalog=AWSMarketplace&entityId=example-abcd-1234 HTTP/1.1

响应

HTTP/1.1 200 Content-type: application/json { "DetailsDocument": { "ProductTitle": "ABC-XYZ-123", "ShortDescription": "My product short description.", "LongDescription": "My product longer description.", "Sku": "123example456", "SupportDescription": "Need help? Contact our experts at support@example.com \n\nYour purchase includes 24x7 support.", "Categories": [ "Operating Systems", "Network Infrastructure", "Application Development" ] } "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example-abcd-1234", "EntityId": "example1-abcd-1234-5ef6-7890abcdef12@1", "EntityType": "AmiProduct", "LastModifiedDate": "2018-02-27T13:45:22Z", }

更改集合状态和错误

在AWS Marketplace目录 API 中对卖家商品进行更改需要创建描述您要进行的更改的变更集,然后使用StartChangeSet操作开始更改。根据请求的不同,对请求的更改可能需要几分钟、几小时或更长时间才能完成。对此请求的响应如下所示。

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

变更请求将被添加到队列中并进行处理,包括扫描文件和信息以确保其符合产品AWS Marketplace指南。根据变更请求,此过程可能需要几分钟到几天的时间。您可以通过或在目录 API 中使用DescribeChangeSet操作检查请求的状态。AWS Marketplace 管理门户有关更改集的更多信息,请参阅使用变更集。

要查看您的请求状态,请使用DescribeChangeSet操作。

POST /DescribeChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSetID": "example123456789012abcdef" }

此调用的结果如下所示(在本例中,用于向容器产品添加新版本)。

{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef", "ChangeSetName": "Submitted by 123456789012", "StartTime": "2020-10-27T22:21:26Z", "EndTime": "2020-10-27T22:32:19Z", "Status": "SUCCEEDED", "ChangeSet": [ { "ChangeType": "AddDeliveryOptions", "Entity": { "Type": "ContainerProduct@1.0", "Identifier": "example-1234-abcd-56ef-abcdef12345678@4" }, "Details": "{\"Version\": {\"VersionTitle\": \"1.1\",\"ReleaseNotes\": \"Minor bug fix\"},\"DeliveryOptions\": [{\"DeliveryOptionTitle\": \"EKSDelivery\",\"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\"}}},{\"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}\"}]}}}]}", "DetailsDocument": { "Version": { "VersionTitle": "1.1", "ReleaseNotes": "Minor bug fix" }, "DeliveryOptions": [ { "DeliveryOptionTitle": "EKSDelivery", "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" } } }, { "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}" } ] } } } ] }, "ErrorDetailList": [] } ] }

该Status字段显示请求的当前状态,在本例中为SUCCEEDED。

如果出现故障,则结果可能包括两种类型的错误。对于大多数错误,直接包含错误消息。但是,在扫描产品是否存在安全漏洞时发现的错误会包含一个文件的 URL,该文件列出了该ErrorMessage字段中发现的所有错误。扫描时发现的错误有 ErrorCode “SCAN_ERROR”。

{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef", "ChangeSetName": "Submitted by 123456789012", "StartTime": "2020-10-27T22:21:26Z", "EndTime": "2020-10-27T22:32:19Z", "Status": "FAILED", "FailureDescription": "Change set preparation has failed. For details see 'ErrorDetailList'.", "ChangeSet": [ { "ChangeType": "AddDeliveryOptions", "Entity": { "Type": "ContainerProduct@1.0", "Identifier": "example-1234-abcd-56ef-abcdef12345678@4" }, "Details": "{\"Version\": {\"VersionTitle\": \"1.1\",\"ReleaseNotes\": \"Minor bug fix\"},\"DeliveryOptions\": [{\"DeliveryOptionTitle\": \"EKSDelivery\",\"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\"}}},{\"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}\"}]}}}]}", "DetailsDocument": { "Version": { "VersionTitle": "1.1", "ReleaseNotes": "Minor bug fix" }, "DeliveryOptions": [ { "DeliveryOptionTitle": "EKSDelivery", "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" } } }, { "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}" } ] } } } ] }, "ErrorDetailList": [ { "ErrorCode": "DUPLICATE_VERSION_TITLE", "ErrorMessage": "The version title must be different from any other version titles of this product." }, { "ErrorCode": "SCAN_ERROR", "ErrorMessage": "https://123sample456.cloudfront.net/example-1234-abcd-5678-abcdef12345678/1234abcdef567890" } ] } ] }

在此示例中,直接报告了一个错误 (DUPLICATE_VERSION_TITLE)。另一个错误有一个包含错误消息的文件(在链接的文件中,单个错误SCAN_ERROR可能存在多个已发现的错误)。

注意

中返回的链接有效期ErrorMessage为 60 天。