对 AWS Marketplace API 参考进行了重组。有关支持的 API 操作的更多信息,请参阅 AWS 市场 API 参考。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AMI-based 产品
您可以使用 AWS Marketplace Catalog API 来自动执行处理基于亚马逊系统映像 (AMI) 的产品的任务。
有关使用目录 API 创建 AMI-based 产品的信息,请参阅创建产品。
以下主题介绍如何使用目录 API 对您的 AMI-based 产品执行操作:
添加新版本
您可以使用目录 API 向中的现有 AMI-based 产品添加新版本 AWS Marketplace。有关使用向商品添加新 AMI 版本的更多信息 AWS Marketplace 管理门户,请参阅AWS Marketplace 卖家指南中的添加新版本。
当您创建包括向 AWS Marketplace 添加新 AMI 的请求时,必须将该 AMI 复制到 AWS Marketplace 系统中,然后进行扫描以查看是否存在安全问题。您必须通过创建有权对您的 AMI 执行操作的 AWS 身份和访问管理 (IAM) 角色来授予 AWS Marketplace 对 AMI 的访问权限。有关所需权限的更多信息,请参阅AWS Marketplace 卖家指南中的授予 AWS Marktplace 访问您的 AMI 的权限。
要添加新版本,请使用 AMI-based 产品的AddDeliveryOptions更改类型调用 StartChangeSet API 操作,如以下示例所示。要在不实际创建新版本的情况下测试您的 API 调用,请将Intent参数设置为VALIDATE。有关更多信息,请参阅 Intent 。
注意
对于 AMI 产品,一个版本由一个或多个交付选项组成。同一版本中的所有交付选项必须具有相同的AmiSource对象和相同的详细信息。创建版本时,必须将所有交付选项添加到版本中。无法向现有版本添加交付选项。
请求语法
POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "AddDeliveryOptions", "Entity": { "Type": "AmiProduct@1.0", "Identifier": "prod-example12345" }, "DetailsDocument": { "Version": { "VersionTitle": "My new title", "ReleaseNotes": "My new Release notes" }, "DeliveryOptions": [ { "Details": { "AmiDeliveryOptionDetails": { "AmiSource": { "AmiId": "ami-1234567890abcdef", "AccessRoleArn": "arn:aws:iam::12345678901:role/AwsMarketplaceAmiIngestion", "UserName": "ec2-user", "OperatingSystemName": "AMAZONLINUX", "OperatingSystemVersion": "Amazon Linux 2 AMI 2.0.20210126.0 x86_64 HVM gp2", "AfiIds": ["afi-1234567890abcdefg", "afi-abcdefg1234567890"] //Optional (Required only for FPGA products) }, "UsageInstructions": "Easy to use AMI", "RecommendedInstanceType": "m4.xlarge", "SecurityGroups": [ { "IpProtocol": "tcp", "FromPort": 443, "ToPort": 443, "IpRanges": [ "0.0.0.0/0" ] } ] } } }, { "DeliveryOptionTitle": "My new AMI with CFTdelivery option", "Details": { "DeploymentTemplateDeliveryOptionDetails": { "ShortDescription": "My new short description", "LongDescription": "My new long description", "UsageInstructions": "My new usage instructions", "RecommendedInstanceType": "m4.xlarge", "ArchitectureDiagram": "https://my-bucket.s3.amazonaws.com/my-folder/diagram.png", "Template": "https://my-bucket.s3.amazonaws.com/my-folder/cft.template", "TemplateSources": [ { "ParameterName": "MyAmiParam", "AmiSource": { "AmiId": "ami-1234567890abcdef", "AccessRoleArn": "arn:aws:iam::12345678901:role/AwsMarketplaceAmiIngestion", "UserName": "ec2-user", "OperatingSystemName": "AMAZONLINUX", "OperatingSystemVersion": "Amazon Linux 2 AMI 2.0.20210126.0 x86_64 HVM gp2" } } ] } } } ] } } ], "Intent": "APPLY" }
以下列表提供了有关您在AddDeliveryOptions更改类型中使用的输入字段的信息。除非另有说明,否则所有字段均为必填字段。有关这些字段的更多信息,请参阅 AWS Marketplace 卖家指南中的添加新版本。
-
DeliveryOptions(对象数组)-交付选项对象的列表,包括每个对象的详细信息。必须至少包含一个。
-
对于 AMI(独立)交付选项,请指定包含以下详细信息的对象。这种类型的配送选项只能有一个选项。
-
详细信息(对象)-保存此交付选项的详细信息。请注意,这个嵌套的细节对象不需要进行双重转义。
-
AmiDeliveryOptionDetails(对象)— 用于提供每个 AMI 交付选项的详细信息。
-
AmiSource(对象)-有关用于添加版本的 AMI 的详细信息。
-
AmiId(字符串)— 源 AMI 的 ID,位于调用 API AWS 区域 的地方。这必须始终是美国东部(弗吉尼亚北部),因为这是唯一提供目录 API 的地区。必须属于来电者账户。
-
AccessRoleArn(字符串)— 用于访问提供的 AMI 的 IAM 角色亚马逊资源名称 (ARN)。 AWS Marketplace有关创建和使用此 ARN 的详细信息,请参阅《AWS Marketplace 卖家指南》中的 “授予 AWS 商城访问您的 AMI 的权限”。
-
UserName(字符串)— 登录用户名以访问 AMI 中的操作系统 (OS)。对于 Linux AMI,通常是 ec2 用户,对于 Windows 来说通常是管理员。
-
ScanningPort(整数)— 用于访问操作系统的 SSH 或 RDP 端口。用于扫描提供的 AMI 是否存在安全漏洞。默认为 22。
-
OperatingSystemName(字符串)— 向买家显示的操作系统的名称。
-
OperatingSystemVersion(字符串)— 向买家显示的操作系统版本字符串。
-
AfiIds(字符串数组)(可选)— 亚马逊 FPGA 映像 (AFI) ID,用于启用对该版本的 FPGA 支持。如果提供,这使您的产品能够在 FPGA-enabled F2 实例类型上运行。每个版本最多可以提供 15 个 AFI ID。您提供的所有 AFI ID 都必须源自美国东部(弗吉尼亚州北部)区域,存放在您的 AWS Marketplace 卖家账户中,并且所提供的 IAM 访问角色应有权与 AWS Marketplace 共享此 AFI。有关所需权限的更多详细信息,请参阅《AWS Marketplace 卖家指南》中的 “授予 AWS 商城访问您的 FPGA 图像的权限”。
-
-
UsageInstructions(字符串)— 使用 AMI 的说明,或有关 AMI 的更多信息的链接。
-
AccessEndpointUrl(对象)(可选)-用于创建使用 AMI 后的访问路径。
-
端口(字符串)-用于访问在 AMI 上运行的服务的端口号。
-
协议(字符串)-用于访问在 AMI 上运行的服务的协议(http 或 https)。
-
RelativePath(字符串)— 从 Web 根目录访问在 AMI 上运行的服务的路径(例如 /index.html)。
-
-
RecommendedInstanceType(字符串)— 建议使用 AMI 运行服务的实例类型,也是 “一键下单” 安装服务的默认实例类型。有关实例类型列表,请参阅《适用于 Linux 实例的亚马逊弹性计算云用户指南》中的实例类型。
-
SecurityGroups(对象数组)-代表版本自动创建组的入口规则的对象列表。
-
IpProtocol(字符串)-要使用的协议(tcp 或 udp)。
-
FromPort(整数)-源端口。
-
ToPort(整数)-目标端口。
-
IpRanges(字符串数组)— 允许的 IP 范围,采用 CIDR 格式(采用 xxx.xxx.xxx 格式)。xxx/nn,例如,
192.0.2.0/24)。
-
-
-
-
-
对于带有 CloudFormation交付选项的 AMI,请指定包含以下详细信息的对象。您最多可以有三种此类配送选项。
-
DeliveryOptionTitle(字符串)-交付选项的标题。
-
详细信息(对象)-保存 AMI 交付选项的详细信息。请注意,这个嵌套的细节对象不需要进行双重转义。
-
DeploymentTemplateDeliveryOptionDetails(对象)— 用于提供每个 CFT 交付选项的详细信息。
-
ShortDescription(字符串)- CloudFormation 模板交付选项的简要描述。
-
LongDescription(字符串)-您的 CloudFormation模板交付选项的详细描述。
-
UsageInstructions(字符串)— 使用 AMI 的说明,或有关 AMI 的更多信息的链接。
-
RecommendedInstanceType(字符串)— 建议使用 AMI 运行服务的实例类型,也是 “一键下单” 安装服务的默认实例类型。有关实例类型列表,请参阅《适用于 Linux 实例的亚马逊弹性计算云用户指南》中的实例类型。
-
ArchitectureDiagram(字符串)— 指向架构图在 Amazon S3 中的位置的网址。
-
模板(字符串)— 指向您的 CloudFormation 模板在 Amazon S3 中的位置的网址。
-
TemplateSources(对象数组)
-
ParameterName(字符串)— 此版本中的 AMI 应传递到的 CloudFormation 模板中参数的名称。有关更多信息,请参阅 AMI 要求详情。
-
AmiSource(对象)
-
AmiId(字符串)— 源 AMI 的 ID,位于调用 API AWS 区域 的地方(目前必须始终为美国东部(弗吉尼亚北部),因为这是唯一可用 Catalog API 的区域)。必须属于来电者账户。
-
AccessRoleArn(字符串)— 用于访问提供的 AMI 的 IAM 角色亚马逊资源名称 (ARN)。 AWS 区域 有关创建和使用此 ARN 的详细信息,请参阅《AWS Marketplace 卖家指南》中的 “授予 AWS 商城访问您的 AMI 的权限”。
-
UserName(字符串)— 登录用户名以访问 AMI 中的操作系统 (OS)。通常
ec2-user用于 Linux AMI 或AdministratorWindows。 -
OperatingSystemName(字符串)— 向买家显示的操作系统的名称。
-
OperatingSystemVersion(字符串)— 向买家显示的操作系统版本字符串。
-
-
-
-
-
-
响应语法
系统会为您的请求创建变更集。对该请求的响应为您提供了变更集的和,如下所示。ChangeSetId ChangeSetArn
{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef" }
变更请求将添加到队列中并进行处理。这包括验证信息以确保其符合 AWS Marketplace 指导方针。验证过程可能需要几分钟到几小时不等。
您可以通过查看请求的状态 AWS Marketplace 管理门户,也可以使用 API 操作直接通过目录 API 来检查请求的DescribeChangeSet状态。
有关卖家产品更改集错误的更多信息,请参阅更改集合状态和错误。
请求完成后,将添加版本,所有现有订阅者都将收到一封电子邮件,告知他们有关新版本的信息。有关添加新版本流程的更多信息,请参阅《AWS Marketplace 卖家指南》中的添加新版本。
异步错误
以下错误特定于中的AddDeliveryOptions操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| AMI_NAME_NAME 无效 | AMI 名称中的前缀 (x) 无效。使用您的公司或品牌名称作为前缀提供新名称。 |
|
无效的产品 |
使用现有的有限或公共产品。 |
|
重复版本标题 |
版本标题必须与本产品的任何其他版本标题不同。 |
|
版本标题无效 |
删除商标符号前的空格。 |
|
版本标题无效 |
移除不支持的字符:[x, y, z] |
|
版本标题无效 |
删除版本标题开头的空格。 |
|
版本标题无效 |
提供少于 [x] 个字符的版本标题。 |
|
无效的发行说明 |
删除商标符号前的空格。 |
|
无效的发行说明 |
移除不支持的字符:[x, y, z] |
|
无效的发行说明 |
删除发行说明开头的空格。 |
|
无效的发行说明 |
提供少于 (x) 个字符的发行说明。 |
|
无效的使用指令 |
删除商标符号前的空格。 |
|
无效的使用指令 |
移除不支持的字符:[x, y, z] |
|
无效的使用指令 |
删除发行说明开头的空格。 |
|
无效的使用指令 |
提供少于 (x) 个字符的使用说明。 |
|
推荐的实例类型不可用 |
提供现有的可用实例类型。 |
|
无效_推荐的实例_类型 |
提供有效的实例类型。 |
|
无效的安全组 |
安全组端口必须介于 1 和 [max] 之间。 |
|
无效的安全组 |
为 CIDR IP 范围提供一个值。 |
|
无效的安全组 |
提供不大于结束端口的安全组启动端口。 |
|
无效的安全组协议 |
安全组协议必须是 'tcp' 或 'udp'。 |
|
INVALID_CIDR_IP |
以 '0.0.0 的形式提供标准 CIDR IP 范围。0/0'。 |
|
无效的访问端点端口 |
提供小于 [x] 的端点端口。 |
|
无效的访问端点端口 |
提供介于 1 和 [max] 之间的端点端口。 |
|
无效的访问端点端口 |
提供端点端口。 |
|
无效的访问端点相对路径 |
删除相对路径中的空格。 |
|
无效的访问端点相对路径 |
从相对路径中删除前面的 “/”。 |
|
不兼容的操作系统 |
提供与实例类型兼容的操作系统名称和版本:[x] |
|
不兼容的操作系统名称 |
提供少于 (x) 个字符的名称。 |
|
不兼容的操作系统名称 |
提供支持的操作系统名称。 |
|
不兼容的操作系统版本 |
提供少于 (x) 个字符的版本。 |
|
无效的扫描端口 |
提供介于 1 和 [max] 之间的扫描端口。 |
|
INVALID_AMI_ID |
提供有效的 AMI ID。 |
|
现有_AMI_产品_代码 |
删除附在图片 X 上的产品代码。 |
|
AMI_ARCHITECTURE 无效 |
为新的 AMI 提供架构 [x]。 |
|
无效的 AMI_VIRTUALIZATION_TYPE |
为新的 AMI 提供虚拟化类型 [x]。 |
|
无效的 AMI_VIRTUALIZATION_TYPE |
在图片 [x] 上提供预期的 [z] 音量。 |
|
INCOMPATIBLE_AMI |
由于以下实例类型不支持 [y] 上的架构 [x],因此提供新的 AMI:[z] |
|
INCOMPATIBLE_AMI |
提供新的 AMI,因为以下实例类型不支持 [y] 上的虚拟化类型 [x]:[z] |
|
INCOMPATIBLE_AMI |
为映像 x 启用 ENA 支持,因为以下实例类型需要 ENA 支持:[y] |
|
未找到资产 |
检查 [账户 ID] 的 us-east-1 区域中是否存在 [ami-id], AWS 账户 以及 |
|
资产访问异常 |
无法将 AMI [x] 复制到 AWS Marketplace
账户。 |
|
扫描错误 |
修复图片 [x] 上的安全漏洞 [y]。 |
|
未找到资产 |
检查 [账户ID] 的 us-east-1 区域中是否存在 [afi-id], AWS 账户 以及 |
|
资产访问异常 |
无法访问 AFI。检查提供的 AccessARN [ARN] 是否有权与之共享此 AFI, AWS Marketplace 以及访问角色账户是否为 AFI 所有者。 |
|
缺少_FPGA_实例_类型 |
未找到基于 FPGA 的实例类型。使用 AddInstanceTypes 更改类型添加基于 FPGA 的实例类型。 |
您也可以使用创建 AMI-based 产品 AWS Marketplace 管理门户。有关更多信息,请参阅《AWS Marketplace 卖家指南》中的 AMI 产品。
要了解如何自动更新 AMI-based 产品的演练,您还可以观看视频 “ AWS Marketplace 使用目录 API 自动更新产品清单”
更新版本信息
您可以使用目录 API 在中更新 AMI-based 产品的现有版本的详细信息 AWS Marketplace。
注意
有关使用更新版本信息的更多信息 AWS Marketplace 管理门户,请参阅《AWS Marketplace 卖家指南》中的更新版本信息。
您无法更新该版本的 AMI。如果您需要更新 AMI,请改为创建新版本。
要添加新版本,请使用UpdateDeliveryOptions更改类型调用 StartChangeSet API 操作,如以下示例所示。
请求语法
POST /StartChangeSet HTTP/1.1
Content-type: application/json
{
"Catalog": "AWSMarketplace",
"ChangeSet":
[
{
"ChangeType": "UpdateDeliveryOptions",
"Entity":
{
"Identifier": "example1-abcd-1234-5ef6-7890abcdef12@1",
"Type": "AmiProduct@1.0"
},
"DetailsDocument":
{
"Version":
{
"ReleaseNotes": "*My new Release notes*"
},
"DeliveryOptions":
[
{
"Id": "example1-2222-cccc-2222-cccccccccccc",
"Details":
{
"AmiDeliveryOptionDetails":
{
"UsageInstructions": "Easy to use AMI"
}
}
},
{
"Id": "example1-2222-dddd-2222-dddddddddddd",
"Details":
{
"DeploymentTemplateDeliveryOptionDetails":
{work with ami
"DeliveryOptionTitle": "My updated delivery option title",
"UsageInstructions": "Updated usage instructions here."
}
}
}
]
}
}
]
}
以下是有关您为添加UpdateDeliveryOptions更改类型而提供的输入字段的信息。有关这些字段的更多信息,请参阅《 AWS Marketplace 卖家指南》中的更新版本信息。
-
实体(对象)(必填)-您的 AMI-based 产品。
-
标识符(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。
-
类型(字符串)(必填)— 基于您的产品将使用的交付方式(产品类型):
AmiProduct@1.0。Type
-
-
DetailsDocument(对象)(必填)-请求的详细信息。它包含有关您想要更新的 AMI-based 产品版本的任何信息。包含的字段均为可选字段,但必须包含至少一个字段才能更新。
-
版本(对象)-有关软件版本的详细信息。
-
ReleaseNotes(字符串)-供买家告知他们从一个版本到下一个版本的变更的注意事项。
-
-
DeliveryOptions(对象数组)-交付选项对象列表。仅包括您要更新的配送选项。
-
对于 AMI(独立)交付选项,请指定包含以下详细信息的对象。仅包含要更新的字段。除非另有说明,否则所有字段均为可选字段。
-
ID(字符串)(必填)-配送选项的唯一标识符(您可以通过对正在更新的产品调用
DescribeEntity操作来获取配送选项的唯一标识符)。 -
详细信息(对象)-保存 AMI 交付选项的详细信息。请注意,这个嵌套的细节对象不需要进行双重转义。
-
AmiDeliveryOptionDetails(对象)— 一个 AMI 交付选项的详细信息。
-
UsageInstructions(字符串)— AMI 使用说明,或有关 AMI 的更多信息的链接。
-
AccessEndpointUrl(对象)— 用于创建使用 AMI 后的访问路径。
-
端口(字符串)-用于访问在 AMI 上运行的服务的端口号。
-
协议(字符串)-用于访问在 AMI 上运行的服务的协议(
http或https)。 -
RelativePath(字符串)— 从 Web 根目录访问在 AMI 上运行的服务的路径(例如
/index.html)。
-
-
RecommendedInstanceType(字符串)— 建议使用 AMI 运行服务的实例类型,也是 “一键下单” 安装服务的默认实例类型。
-
SecurityGroups(对象数组)-代表版本自动创建组的入口规则的对象列表:
-
FromPort(整数)-源端口。
-
IpProtocol(字符串)— 要使用的协议(
tcp或idp)。 -
IpRanges(字符串数组)— 允许的 IP 范围,采用 CIDR 格式(采用 xxx.xxx. xxx 格式)。xxx/nn,例如,
192.0.2.0/24)。 -
ToPort(整数)-目标端口。
-
-
-
-
-
对于带有 CloudFormation交付选项的 AMI,请指定包含以下详细信息的对象。仅包含要更新的字段。除非另有说明,否则所有字段均为可选字段。
-
ID(字符串)(必填)-配送选项的唯一标识符(您可以通过对正在更新的产品调用
DescribeEntity操作来获取配送选项的唯一标识符)。 -
详细信息(对象)-保存 AMI 交付选项的详细信息。请注意,这个嵌套的细节对象不需要进行双重转义。
-
DeploymentTemplateDeliveryOptionDetails(对象)— 用于提供每个 CFT 交付选项的详细信息。
-
DeliveryOptionTitle(字符串)-交付选项的标题。
-
ShortDescription(字符串)- CloudFormation 模板交付选项的简要描述。
-
LongDescription(字符串)-您的 CloudFormation模板交付选项的详细描述。
-
UsageInstructions(字符串)— AMI 使用说明,或有关 AMI 的更多信息的链接。
-
RecommendedInstanceType(字符串)— 建议使用 AMI 运行服务的实例类型,也是 “一键下单” 安装服务的默认实例类型。有关实例类型列表,请参阅《适用于 Linux 实例的亚马逊弹性计算云用户指南》中的实例类型。
-
ArchitectureDiagram(字符串)— 指向架构图在 Amazon S3 中的位置的网址。
-
模板(字符串)— 指向您的 CloudFormation 模板在 Amazon S3 中的位置的网址。
-
TemplateSources(对象数组)
-
ParameterName(字符串)— CloudFormation 模板中应将此版本中的 AMI 传递到的参数的名称。有关更多信息,请参阅 AMI 要求详情。
-
AmiSource(对象)
-
AmiId(字符串)— 源 AMI 的 ID,位于调用 API AWS 区域 的地方(目前必须始终为美国东部(弗吉尼亚北部),因为这是唯一可用 Catalog API 的区域)。必须属于来电者账户。
-
AccessRoleArn(字符串)— 用于访问提供的 AMI 的 IAM 角色亚马逊资源名称 (ARN)。 AWS 区域 有关创建和使用此 ARN 的详细信息,请参阅《AWS Marketplace 卖家指南》中的 “授予 AWS 商城访问您的 AMI 的权限”。
-
UserName(字符串)— 登录用户名以访问 AMI 中的操作系统 (OS)。通常
ec2-user用于 Linux AMI 或AdministratorWindows。 -
OperatingSystemName(字符串)— 向买家显示的操作系统的名称。
-
OperatingSystemVersion(字符串)— 向买家显示的操作系统版本字符串。
-
-
-
-
-
-
-
响应语法
系统会为您的请求创建变更集。对该请求的响应为您提供了变更集的和,如下所示。ChangeSetId ChangeSetArn
{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef" }
变更请求将添加到队列中并进行处理。这包括验证信息以确保其符合 AWS Marketplace 指导方针。验证过程可能需要几分钟到几小时不等。
您可以通过查看请求的状态 AWS Marketplace 管理门户,也可以使用 API 操作直接通过目录 API 来检查请求的DescribeChangeSet状态。
有关更改集的更多信息,请参阅使用变更集。有关卖家产品更改集错误的更多信息,请参阅更改集合状态和错误。
异步错误
以下错误特定于中的UpdateDeliveryOptions操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
在更改集开始处理后,您可以使用该DescribeChangeSet操作来检索UpdatePricingTerms操作。有关错误详细信息和故障排除的更多信息更改集合状态和错误,请参阅本指南前面的部分。
| 错误代码 | 错误消息 |
|---|---|
| 无效的产品 | 使用现有的有限或公共产品。 |
| 缺少配送选项_ID | 提供至少一个配送选项 ID。 |
| 无效的配送选项_ID | 提供可在产品中找到的配送选项 ID。找不到 ID: [x] |
| 无效的配送选项 | 提供属于同一版本的配送选项 ID。 |
限制版本
您可以使用目录 API 来限制 AMI-based 产品的某个版本。这可以防止新买家使用该版本,但仍可供现有买家使用。限制某个版本的所有交付选项会限制该版本。限制一个版本中的一个或多个(但不是全部)交付选项只会限制该版本中的交付选项。您必须始终有至少一个产品的非限制版本可用,因此您无法限制产品的最后一个公开版本。
注意
有关 AWS Marketplace 通过限制 AMI 版本的更多信息 AWS Marketplace 管理门户,请参阅《AWS Marketplace 卖家指南》中的 “限制版本” 。
要限制版本,请使用RestrictDeliveryOptions更改类型调用 StartChangeSet API 操作,如以下示例所示。
注意
无论限制状态如何,所有订阅者都可以使用当前版本。 AWS Marketplace 指南要求您在限制版本后的 90 天内继续向现有买家提供支持。版本限制后,您的 AMI 将被标记为已弃用。有关更多信息,请参阅《适用于 Windows 实例的 Amazon Elastic Compute Cloud 用户指南》中的弃用 AMI。
请求语法
POST /StartChangeSet HTTP/1.1
Content-type: application/json
{
"Catalog": "AWSMarketplace",
"ChangeSet":
[
{
"ChangeType": "RestrictDeliveryOptions",
"Entity":
{
"Identifier": "example1-abcd-1234-5ef6-7890abcdef12@1",
"Type": "AmiProduct@1.0"
},
"DetailsDocument":
{
"DeliveryOptionIds":
[
"example1-2222-cccc-2222-cccccccccccc"
]
}
}
]
}
以下是有关您为添加RestrictDeliveryOptions更改类型而提供的输入字段的信息:
-
实体(对象)(必填)-您的 AMI-based 产品。
-
标识符(字符串)(必填)-您的产品编号。有关更多信息,请参阅 标识符。
-
类型(字符串)(必填)— 基于您的产品将使用的交付方式(产品类型):
AmiProduct@1.0。Type
-
-
DetailsDocument(对象)(必填)-请求的详细信息。它包含您想要限制的 AMI-based 产品版本的 ID。
-
DeliveryOptionIds(对象数组)-要限制的版本的
DeliveryOptionID 列表。您可以DeliveryOption通过对所限制的版本调用DescribeEntity操作来获取的唯一标识符。
-
响应语法
系统会为您的请求创建变更集。对该请求的响应为您提供了变更集的和,如下所示。ChangeSetId ChangeSetArn
{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef" }
变更请求将添加到队列中并进行处理。这包括验证信息以确保其符合 AWS Marketplace 指导方针。验证过程可能需要几分钟到几小时不等。
您可以通过查看请求的状态 AWS Marketplace 管理门户,也可以使用 API 操作直接通过目录 API 来检查请求的DescribeChangeSet状态。
异步错误
以下错误特定于中的RestrictDeliveryOptions操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
|
无效的产品 |
使用现有的公共产品。 |
|
缺少配送选项_ID |
提供至少一个配送选项 ID。 |
|
无效的配送选项_ID |
提供可在产品中找到的配送选项 ID。找不到 ID: [x] |
|
无效的配送选项 |
提供处于公共状态的配送选项 ID。身份证不在公共状态:[x] |
|
所有配送选项_受限 |
提供较少的配送选项以进行限制,因为至少有一个必须保持公共状态。 |
将来更新 AWS 区域 支持
您可以使用目录 API 在中更改 AMI-based 产品的未来 AWS 区域 支持偏好 AWS Marketplace。
注意
有关使用更改未来区域支持的更多信息 AWS Marketplace 管理门户,请参阅《AWS Marketplace 卖家指南》中的更新对未来 AWS 区域的支持。
注意
UpdateFutureRegionSupport更改类型仅在上可用AmiProduct@1.0。
要更改未来的 AWS 区域 支持首选项,请使用UpdateFutureRegionSupport更改类型调用 StartChangeSet API 操作,如以下示例所示。
请求语法
POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "UpdateFutureRegionSupport", "Entity": { "Identifier": "prod-example12345", "Type": "AmiProduct@1.0" }, "DetailsDocument": { "FutureRegionSupport": { "SupportedRegions": [ "All" ] } } } ] }
为字段提供信息以添加UpdateFutureRegionSupport更改类型:
-
Entity(对象)(必填)-您的 AMI-based 产品。-
Identifier(字符串)(必填)-您的产品 ID。有关更多信息,请参阅 标识符。 -
Type(字符串)(必填)— 基于您的产品将使用的交付方式(产品类型):AmiProduct@1.0。Type
-
-
DetailsDocument(对象)(必填)— 执行所需的详细信息 ChangeSet。-
FutureRegionSupport— 对象-
SupportedRegions— 字符串 Single-element数组元素支持的值:[
"All"、"US"、"None"] 之一
-
-
响应语法
系统会为您的请求创建变更集。对该请求的响应为您提供了变更集的和,如下所示。ChangeSetId ChangeSetArn
{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef" }
变更请求将添加到队列中并进行处理。这包括验证信息以确保其符合 AWS Marketplace 指导方针。验证过程可能需要几分钟到几小时不等。
您可以通过查看请求的状态 AWS Marketplace 管理门户,也可以使用 API 操作直接通过目录 API 来检查请求的DescribeChangeSet状态。
异步错误
以下错误特定于中的UpdateFutureRegionSupport操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| 区域太多了 | 目前,仅支持 1 个值 FutureRegionSupport:全部、美国或无 |
| 无效区域 | 请求的区域 [a, b, c] 无效或不可用。仅支持的值是 [x, y, z]。 |
| INVALID_INPUT | SupportedRegions 不能为空。 |
添加支持的 AWS 区域
您可以使用目录 API 在中 AWS 区域 为您的 AMI-based产品添加新的支持 AWS Marketplace。
注意
有关使用添加新的支持区域的更多信息 AWS Marketplace 管理门户,请参阅AWS Marketplace 卖家指南中的添加 AWS 区域。
注意
AddRegions更改类型仅在上可用AmiProduct@1.0。
要添加新的支持区域,请使用AddRegions更改类型调用 StartChangeSet API 操作,如以下示例所示。
请求语法
POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "AddRegions", "DetailsDocument": { "Regions": [ "us-east-1", "ap-northeast-2" ] }, "Entity": { "Identifier": "prod-123456@1", "Type": "AmiProduct@1.0" } } ] }
为字段提供信息以添加AddRegions更改类型。
-
Entity(对象)(必填)-您的 AMI-based 产品。-
Identifier(字符串)(必填)-您的产品 ID。有关更多信息,请参阅 标识符。 -
Type(字符串)(必填)— 基于您的产品将使用的交付方式(产品类型):AmiProduct@1.0。Type
-
-
例
DetailsDocument(object) (required) – The details required to execute the ChangeSet.-
Regions:字符串数组元素支持的值:有效的 AWS 区域 代码字符串。
例如,[
"us-east- 1"]。
-
响应语法
系统会为您的请求创建变更集。对该请求的响应为您提供了变更集的和,如下所示。ChangeSetId ChangeSetArn
{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef" }
变更请求将添加到队列中并进行处理。这包括验证信息以确保其符合 AWS Marketplace 指导方针。验证过程可能需要几分钟到几小时不等。
您可以通过查看请求的状态 AWS Marketplace 管理门户,也可以使用 API 操作直接通过目录 API 来检查请求的DescribeChangeSet状态。
-
如果变更集的执行状态为
SUCCEEDED:生成新实体Identifier(或EntityId)。您可以对产品实体使用DescribeEntityAPI 操作来检查结果。 -
如果变更集的执行状态为
CLIENT_ERROR:DescribeChangeSet响应将提供错误的详细信息以及为修复错误而采取的相应操作。
异步错误
以下错误特定于中的AddRegions操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| 无效区域 | 请求的区域 [a、b、c] 无效或不可用。仅支持的值是 [x, y, z]。 |
| INVALID_INPUT | 区域不能为空。 |
限制 AWS 区域
您可以使用目录 API 来限制以前在中 AWS 区域 对您的 AMI-based 商品的支持 AWS Marketplace。
注意
有关使用限制以前支持的区域的更多信息 AWS Marketplace 管理门户,请参阅《AWS Marketplace 卖家指南》中的 “限制 AWS 区域” 。
注意
RestrictRegions更改类型仅在上可用AmiProduct@1.0。
要限制以前支持的区域,请使用RestrictRegions更改类型调用 StartChangeSet API 操作,如以下示例所示。
请求语法
POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "RestrictRegions", "DetailsDocument": { "Regions": [ "us-east-1", "ap-northeast-2" ] }, "Entity": { "Identifier": "prod-123456@1", "Type": "AmiProduct@1.0" } } ] }
为字段提供信息以添加AddRegions更改类型。
-
Entity(对象)(必填)-您的 AMI-based 产品。-
Identifier(字符串)(必填)-您的产品 ID。有关更多信息,请参阅 标识符。 -
Type(字符串)(必填)— 基于您的产品将使用的交付方式(产品类型):AmiProduct@1.0。Type
-
-
DetailsDocument(对象)(必填)— 执行所需的详细信息 ChangeSet。
-
Regions— 字符串数组元素支持的值:有效的 AWS 区域 代码字符串,例如
"us-east-1"。
-
响应语法
系统会为您的请求创建变更集。对该请求的响应为您提供了变更集的和,如下所示。ChangeSetId ChangeSetArn
{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef" }
变更请求将添加到队列中并进行处理。这包括验证信息以确保其符合 AWS Marketplace 指导方针。验证过程可能需要几分钟到几小时不等。
您可以通过查看请求的状态 AWS Marketplace 管理门户,也可以使用 API 操作直接通过目录 API 来检查请求的DescribeChangeSet状态。
-
如果变更集的执行状态为
SUCCEEDED— 生成一个新的实体Identifier(或EntityId)。您可以在产品实体DescribeEntity上使用来检查结果。有关更多信息,请参阅DescribeEntity。 -
如果变更集的执行状态为
CLIENT_ERROR:DescribeChangeSet响应将提供错误的详细信息以及为修复错误而采取的相应操作。
异步错误
以下错误特定于中的AddRegions操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| 无效区域 | 请求的区域 [a、b、c] 无效或不可用。仅支持的值是 [x, y, z]。 |
| INVALID_INPUT | 区域不能为空。 |
添加新的实例类型
您可以使用目录 API 在中为您的 AMI-based 产品添加新的实例类型 AWS Marketplace。
注意
有关使用添加实例类型的更多信息 AWS Marketplace 管理门户,请参阅AWS Marketplace 卖家指南中的添加实例。
AddInstanceTypes将在创建产品时向现有产品和新创建的产品添加新的实例类型。变更类型将使用新的实例类型更新产品文档中的所有版本。
注意
AddInstanceTypes更改类型仅在上可用AmiProduct@1.0。
添加受限实例类型时,可以将该实例类型从限制列表中移除并添加到可用实例类型列表中。这使卖家有更多的控制权来更改其产品限制。实例类型列表是可互换的,不是产品的永久限制状态。
对于内部计量产品,卖家需要调用单独的变更类型AddDimensionsUpdatePricingTerms并更新实例类型的定价。
要添加新的实例类型,请使用RestrictRegions更改类型调用 StartChangeSet API 操作,如以下示例所示。
请求语法
仅AddInstanceTypes更改类型如下所示。尽管采用内部计费的 AMI 卖家必须致电AddInstanceTypes并UpdatePricingTerms更改其 AMI 的类型。
POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "AddInstanceTypes", "Entity": { "Identifier": "prod-example12345", "Type": "AmiProduct@1.0" }, "DetailsDocument": { "InstanceTypes": [ "m1.medium" ] } } ] }
为字段提供信息以添加AddInstanceTypes更改类型:
-
Entity(对象)(必填)-您的 AMI-based 产品。-
Identifier(字符串)(必填)-您的产品 ID。有关更多信息,请参阅 标识符。 -
Type(字符串)(必填)— 基于您的产品将使用的交付方式(产品类型):AmiProduct@1.0。Type
-
-
DetailsDocument(对象)(必填)— 在本例中为执行所需的详细信息
InstanceTypes。ChangeSet-
InstanceTypes(字符串数组)(必填)—InstanceTypes要添加到产品的列表。这些实例将添加到现有实例中InstanceTypes。
-
响应语法
系统会为您的请求创建变更集。对该请求的响应为您提供了变更集的和,如下所示。ChangeSetId ChangeSetArn
{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef" }
变更请求将添加到队列中并进行处理。这包括验证信息以确保其符合 AWS Marketplace 指导方针。验证过程可能需要几分钟到几小时不等。
您可以通过查看请求的状态 AWS Marketplace 管理门户,也可以使用 API 操作直接通过目录 API 来检查请求的DescribeChangeSet状态。
同步验证
以下架构验证特定于中的AddInstanceTypes AWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不满足以下要求,它将失败并发出 HTTP 响应。
| 输入字段 | 验证规则 | HTTP |
|---|---|---|
| InstanceTypes | 必填 | 422 |
| InstanceTypes | 不能为空 | 422 |
| InstanceTypes | 条目长度必须介于 1 到 24 个字符之间。必须匹配 ^ [A-Za-z0-9_.-] +$ | 422 |
| InstanceTypes | 参赛作品必须是唯一的 | 422 |
| InstanceTypes | 不得超过 1500 个条目 | 422 |
| 未知财产 | 不允许有其他房产 | 422 |
异步错误
以下错误特定于中的AddInstanceTypes操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| 无效的实例类型 | 以下实例类型无效:[x] |
| 无效的实例虚拟化 | 产品的虚拟化是 [x]。以下实例类型不支持它:[x] |
| AMI_ARCHITECTURE 无效 | 该产品的 CPU 架构为 '%s'。” + “以下实例类型不支持它:[x] |
| 不兼容的操作系统 | 实例类型与产品中定义的操作系统不兼容。提供与产品中定义的操作系统兼容的实例类型。 |
| 无效的商品类型 | 使用现有的单一 AMI 产品。 |
| INVALID_ENA_SETTING | 该产品不支持 ENA。以下实例类型需要 ENA 支持:[x] |
| 无效维度 | 未找到实例类型的内部计量尺寸:[x] |
| 缺少的维度 | 未找到该产品的尺寸。 AddDimensions 之前是必需 AddInstanceTypes的。 |
| 需要更新定价 | UpdatePricingTerms 当产品上有内部计量尺寸时,需要更改类型。 |
限制实例类型
您可以使用目录 API 来限制或限制您的 AMI-based 产品在中可用的实例类型 AWS Marketplace。
注意
有关使用限制或限制可用实例类型的更多信息 AWS Marketplace 管理门户,请参阅《AWS Marketplace 卖家指南》中的限制实例。
现有订阅者不会受到此变更的影响,他们可以使用受限的实例类型。但是,没有新买家能够使用受限制的实例类型。要停止当前的实例类型订阅(一旦实例类型受到限制),您必须联系 AWS Marketplace 卖家运营团队。
RestrictInstanctTypes将实例类型限制为产品文档中的所有版本。在AddInstanceTypes变更类型中,您正在更新产品的所有版本。您将无法限制推荐的实例类型。推荐的实例类型为版本级别,因此卖方可能无法限制多种实例类型。
对于内部计量产品,您需要在致电时调RestrictDimensions用不同的变更类型。这样可以防止为受限实例类型创建新的报价。
注意
RestrictInstanceTypes更改类型仅在上可用AmiProduct@1.0。
要限制或限制可用于您的 AMI-based 产品的实例类型,请使用RestrictInstanceTypes更改类型调用 StartChangeSet API 操作,如以下示例所示。
请求语法
POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "RestrictInstanceTypes", "Entity": { "Identifier": "prod-example12345", "Type": "AmiProduct@1.0" }, "DetailsDocument": { "InstanceTypes": [ "m1.medium" ] } } ] }
为字段提供信息以添加RestrictInstanceTypes更改类型。
-
Entity(对象)(必填)-您的 AMI-based 产品。-
Identifier(字符串)(必填)-您的产品 ID。有关更多信息,请参阅 标识符。 -
Type(字符串)(必填)— 基于您的产品将使用的交付方式(产品类型):AmiProduct@1.0。Type
-
-
DetailsDocument(对象)(必填)— 在本例中为执行所需的详细信息
InstanceTypes。ChangeSet-
InstanceTypes(字符串数组)(必填)— 仅InstanceTypes限于产品的列表。这些实例将添加到当前(或者如果没有现有实例类型,则会添加)到受限InstanceTypes。
-
响应语法
系统会为您的请求创建变更集。对该请求的响应为您提供了变更集的和,如下所示。ChangeSetId ChangeSetArn
{ "ChangeSetId": "example123456789012abcdef", "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef" }
变更请求将添加到队列中并进行处理。这包括验证信息以确保其符合 AWS Marketplace 指导方针。验证过程可能需要几分钟到几小时不等。
您可以通过查看请求的状态 AWS Marketplace 管理门户,也可以使用 API 操作直接通过目录 API 来检查请求的DescribeChangeSet状态。
同步验证
以下架构验证特定于中的RestrictInstanceTypes AWS Marketplace Catalog API操作。这些验证是在您致电StartChangeSet时执行的。如果请求不满足以下要求,它将失败并发出 HTTP 响应。
| 输入字段 | 验证规则 | HTTP |
|---|---|---|
| InstanceTypes | 必填 | 422 |
| InstanceTypes | 不能为空 | 422 |
| InstanceTypes | 条目长度必须介于 1 到 24 个字符之间。必须匹配 ^ [A-Za-z0-9_.-] +$ | 422 |
| InstanceTypes | 参赛作品必须是唯一的 | 422 |
| InstanceTypes | 不得超过 1500 个条目 | 422 |
| 未知财产 | 不允许有其他房产 | 422 |
异步错误
以下错误特定于中的RestrictInstanceTypes操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
| 错误代码 | 错误消息 |
|---|---|
| 无效的_实例_类型 | 以下实例类型无效:[x] |
| 无效的商品类型 | 使用现有的单一 AMI 产品。 |
| 重复实例类型 | 提供不重复的实例类型。 |
| 不可用的实例类型 | 提供可用的实例类型。 |
| 推荐的实例类型受限 | 无法限制以下实例类型。在限制之前,必须将推荐的实例类型更改为不同的实例类型。交付选项 ID [X] 实例类型 [X] |
| 维度_未_受限 | 在限制内部计量实例类型之前限制尺寸:[x] |
| 区域_NO_INSTANCES | 您的受限实例类型将导致区域 X 的产品启动失败。考虑限制更少的实例。 |
| 不兼容限制 | 您的受限实例类型将导致产品没有基于 FPGA 的 AFI 实例类型。产品需要支持至少一种基于 FPGA 的实例类型。 |