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。
请参阅以下资源:
-
要了解使用AWS Marketplace目录 API 的基础知识,请参阅使用 AWS Marketplace Catalog API。
-
有关带有工作代码示例的端到端实验室,请参阅AWS Marketplace卖家研讨会中的使用 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卖家指南》中的以下主题:
-
您无法更新该版本的 AMI。如果您需要更新 AMI,请改为创建一个新版本。
如果您使用创建产品,则该产品将处于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卖家指南》中的以下主题:
-
AMI-based 产品:更新产品信息
-
Container-based 产品:为您的容器产品创建或更新产品信息
-
SaaS-based 产品:更新产品信息
-
机器学习产品:更新产品信息
要更新产品详情,请使用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。
每个维度都由执行更新的维度键和维度类型唯一标识。更新维度不会影响原始维度创建的任何在售商品或客户。
注意
要更新定价维度,请使用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 输入: 必填 |
422 |
异步错误
以下错误特定于中的UpdateDimensions操作AWS Marketplace Catalog API。当您在处理更改集DescribeChangeSet之后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| INVALID_INPUT | “%s” 字段无效。删除商标符号前的空格。 |
| INVALID_INPUT | “%s” 字段无效。删除不支持的字符 %s。 |
| 无效维度 | 为每个维度提供非空字段( |
| 无效维度 | 无法更新维度。该字段 |
| 无效维度 | 无法使用密钥 “%s” 更新同一个维度,并在同一个请求中多次键入 “%s”。 |
| 无效维度 | 无法限制尺寸。类型为 “%s” 的维度密钥 “%s” 不存在。 |
| 无效维度 | 无法更新维度。维度键 “%s” 是 |
| 无效维度 | 无法为已经受限的维度更新尺寸。 |
限制定价维度
您可以使用目录 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 输入: 必填 |
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-based 产品:更新许可名单(预览账户)
-
Container-based 产品:更新 AWS 账户 ID 的许可名单
-
SaaS-based 产品:更新 AWS 账户 ID 的许可名单
-
机器学习产品:更新许可名单
要添加允许查看 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获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| 商品可见性无效 | 使用现有的公共 |
| 无效_ S AWS_ACCOUNT_ID | 提供有效的AWS 账户身份证件。 AWS 账户未找到:[x, y, z]。 |
| ValidationException | 专业服务产品没有许可名单。与其他产品类型不同,有限状态下的专业服务产品无需许可名单即可扩展到任何买家。 |
更新产品知名度
您可以使用目录 API 更新中 AMI、容器、机器学习或 SaaS 产品的可见性(也称为生命周期状态)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(对象)(必填)-正在创建的实体的命名类型。 -
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获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| 产品状态无效 | 使用现有的 |
| 目标可见性无效 | 提供有效的目标可见性状态: |
| 空目标可见性 | 提供有效的目标可见性状态: |
| 无效的替换商品编码 | 使用现有 |
| 无效的替换商品编码 | 替换商品编码仅在限制商品时有效。 |
| 审计错误 | 根据 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(对象)(必填)-正在创建的实体的命名类型。 -
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-1234HTTP/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 天。