View a markdown version of this page

处理卖家商品 - AWS Marketplace

AWS Marketplace API 参考已重组。有关支持的 API 操作的更多信息,请参阅 AWS Marketplace 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变更类型来完成创建产品流程:UpdateInformationUpdateDimensionsUpdateTargeting、和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.0MachineLearningProduct@1.0SaaSProduct@1.0Type有关更多信息,请参阅 标识符

  • 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 管理门户

请求完成后(如果StatusSUCCEEDED),则会生成一个新的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.0MachineLearningProduct@1.0、或SaaSProduct@1.0Type

  • 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、、、、ShortDescriptionLongDescriptionLogoUrlHighlightsAdditionalResourcesSupportDescriptionCategories、和SearchKeywordsDraft

如果在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.0SaaSProduct@1.0Type

响应语法

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和,如下所示。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.0SaaSProduct@1.0Type

响应语法

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和,如下所示。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

输入:EntitledMeteredExternallyMetered

必填

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.0SaaSProduct@1.0Type

响应语法

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和,如下所示。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

输入:EntitledMeteredExternallyMetered

必填

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.0Type

  • 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。

请求完成后(如果StatusSUCCEEDED),则会生成一个新的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 操作,如以下示例所示。

请求语法

什么时候TargetVisibilityPublicLimited

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" } } ] }

因为什么时候TargetVisibilityRestricted

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.0SaaSProduct@1.0ContainerProduct@1.0MachineLearningProduct@1.0Type有关更多信息,请参阅 标识符

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

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

        可能的值:PublicLimitedRestricted

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

        仅接受RestrictedTargetVisibility

同步验证

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

定位类型 有效的当前状态 ReplacementProductId (输入) 验证检查
Public LimitedRestricted 不允许 有效的当前状态
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 管理门户

请求完成后(如果StatusSUCCEEDED),则会生成一个新的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.0SaaSProduct@1.0ReleaseProduct变更类型必须附有为此产品创建的相应草稿公共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.0SaaSProduct@1.0ContainerProduct@1.0MachineLearningProduct@1.0Type有关更多信息,请参阅 标识符

  • 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 管理门户

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

异步错误

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

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

查找您的产品编号

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

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

  • 使用带EntityTypeAmiProductContainerProductSaaSProductMachineLearningProduct、或的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字段中发现的所有错误。扫描时发现的错误有 ErrorCodeSCAN_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 天。