对 AWS Marketplace API 参考进行了重组。有关支持的 API 操作的更多信息,请参阅 AWS 市场 API 参考。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 EC2 映像生成器组件产品
作为 AWS Marketplace 卖家,您可以使用 EC2 映像生成器组件列出交付给 AWS 市场买家的 AMI-based 产品。要创建组件并发布 AWS Marketplace 列表,请按顺序完成以下部分。
主题
构建和测试您的映像生成器组件
在映像生成器上构建和测试您的组件。有关说明,请参阅映像生成器用户指南中的为映像生成器镜像开发自定义组件。使用映像生成器创建组件时,请确保执行以下操作:
-
该组件及其所有基础依赖关系,例如亚马逊简单存储服务 (Amazon S3) 存储桶、密钥或参数,必须在美国东部(弗吉尼亚北部)(
us-east-1) AWS 区域创建。 -
在组件描述中包括支持的架构和任何软件依赖关系。
-
通过创建映像管道并部署管道创建的 AMI,在您的 AWS 账户中测试您的组件。
-
如果您的组件包含从 S3 存储桶复制二进制文件、包或文件的说明,请使用
S3Download操作模块。在S3Download模块中source,输入文件在 S3 存储桶中的静态位置。以下示例在组件安装过程中从 S3 存储桶中复制二进制文件。- name: DownloadMyFile action: S3Download inputs: - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip destination: C:\myfolder\package.zip -
使用该
S3Download操作时,组件最多可以收录 2 GB 的文件。 -
如果您的组件使用参数,请确保所有参数都有默认值。例如,如果您有一个名为的参数
region,请确保您具有有效的默认值,例如us-east-1。这些默认值用于 AWS Marketplace 处理和测试。如果您不包括默认值,测试可能会失败。 -
如果您的组件使用 AWS Secrets Manager、参数存储或存储参数的 AWS Systems Manager 功能,请执行以下操作:
-
-
要在组件中作为步骤检索值,请在 YAML 配置文件中嵌入 AWS Command Line Interface 命令。
-
在 AWS 账户的凭据管理器或参数存储中创建相应的条目。使用默认密钥并提供有效值,这将有助于在 AWS Marketplace 测试过程中构建组件。例如,假设您调
saas_token用了一个使用参数存储的参数token,其默认值为。在这种情况下,在参数存储中创建键值对。用token作密钥。对于该值,请为您的应用程序输入有效的 SaaS 令牌。请注意,存储在 AWS Marketplace 卖家账户中的值仅用于 AWS Marketplace 测试目的。这些价值观不会与买家共享。
-
AWS Marketplace 针对您在组件创建过程中选择的所有兼容操作系统版本,自动为您的组件生成亚马逊系统映像 (AMI)。构建组件时,请至少选择一个兼容的操作系统版本。使用 EC2 映像生成器管道创建和测试 AMI,验证您的组件与所有选定操作系统版本的兼容性。
-
复制组件 ARN
在映像生成器上创建和测试组件后,复制并保存该组件 ARN。当您使用 AWS Marketplace 目录 API 发布产品清单时,您将使用 ARN。
复制映像生成器组件 ARN
-
登录 AWS 管理控制台并在上打开映像生成器控制台https://console.aws.amazon.com/imagebuilder/
。 -
在左侧导航栏的 “保存的资源” 下,选择 “组件” 。
-
在 “组件” 页面上,对于 “筛选器所有者”,选择 “由我拥有” 。
-
选择组件名称。
-
在组件详细信息页面的摘要部分中,复制 ARN。
Creating AWS Marketplace IAM 策略
创建以下 IAM 策略以授予对您的映像生成器组件和相关资源(如 Amazon S3 存储桶和密钥)的 AWS Marketplace 访问权限。使用提供的示例策略。您将这些策略附加到 AWS Marketplace IAM 角色。有关创建策略的帮助,请参阅 IAM 用户指南中的使用 JSON 编辑器创建策略。
-
映像生成器获取组件政策,允许您在映像生成器上 AWS Marketplace 访问您的组件。此政策是必需的。将该策略命名为
mp_ib_ingest。 -
Amazon S3 读取访问策略, AWS Marketplace 允许从 S3 存储桶检索二进制文件。仅当您的组件使用
S3Download操作模块并将关联的二进制文件存储在 S3 存储桶中时,才需要此策略。将该策略命名为mp_ib_s3_read_only。 -
密钥管理器读取权限策略, AWS Marketplace 允许检索存储在密钥管理器中的密钥。仅当您的组件使用密钥管理器存储密钥时,才需要此策略。将该策略命名为
mp_ib_sm_read_only。要将策略限制为仅限您的密钥,请将该Resource部分*中的替换为您的密钥。 -
参数存储读取权限策略, AWS Marketplace 允许检索存储在参数存储中的密钥。仅当您的组件使用参数存储存储密钥时,才需要此策略。将该策略命名为
mp_ib_ssm_parameter_read_only。要将策略限制为仅限您的密钥,请将该Resource部分*中的替换为您的密钥。
创建 AWS Marketplace IAM 角色
使用以下过程创建具有策略 AWS Marketplace 的 IAM 角色,以授予对您的组件及其依赖项的 AWS Marketplace 访问权限。
要创建 AWS Marketplace IAM 角色
-
登录 AWS 管理控制台并在上打开 IAM 控制台https://console.aws.amazon.com/iam/
。 -
在左侧导航栏中,选择角色。
-
选择创建角色。
-
选择 “自定义信任策略” 。
-
输入以下语句:
-
选择下一步。
-
添加您之前创建的映像生成器获取组件策略。获取组件策略是必需的。如果您的组件使用这些 AWS 服务,请为 S3、密钥管理器和参数存储添加相关策略。
-
选择下一步。
-
输入角色名称,例如
MPEC2IBIngestion。 -
选择创建角色。
Copy(复制) AWS Marketplace IAM 角色 ARN
创建 AWS Marketplace IAM 角色后,复制并保存角色 ARN。使用 AWS Marketplace 目录 API 发布清单时,您将使用 ARN。
要复制 AWS Marketplace IAM 角色 ARN
-
在 IAM 控制台的左侧导航栏中,选择角色。
-
选择您之前创建的 AWS Marketplace IAM 角色,例如
MPEC2IBIngestion。 -
在角色详细信息页面的摘要部分中,复制 ARN。
准备您的映像生成器组件清单
在发布您的 AWS Marketplace 清单之前,请确保您准备好以下信息:
-
产品元数据 — 元数据包括产品徽标、产品标题、最终用户许可协议、支持的实例类型和 AWS 区域。
-
定价信息 — 您可以免费提供产品、按小时费率提供产品,也可以在初始免费试用期内按小时费率提供产品。不支持自带许可证 (BYOL)。
-
组件详情 — 详细信息包括组件的亚马逊资源编号 (ARN)、使用情况详细信息以及 AWS Marketplace 将承担处理您的组件的 AWS Identity and Access Management (IAM) 角色。
发布您的映像生成器组件产品清单
本主题包含有关 AWS Marketplace 使用 AWS Marketplace 目录 API 发布 EC2 映像生成器组件清单的说明。
先决条件
在发布图像生成器组件产品清单之前,请确保您具备以下条件:
-
在中注册为卖家 AWS Marketplace。有关更多信息,请参阅注册成为 AWS 商城卖家
。 -
具有
AWSMarketplaceSellerFullAccess权限的 IAM 用户。 -
一个可公开访问的亚马逊简单存储服务 (Amazon S3) 存储桶,用于托管您的公司徽标和 EULA(如果在您的组件中使用)。您将在 JS
ChangeSetON 文件中输入 S3 存储桶的 URL。 -
AWS Command Line Interface (AWS CLI)。有关更多信息,请参阅什么是 AWS 命令行接口?在《AWS Command Line Interface 用户指南》中。
在上创建映像生成器组件产品 AWS Marketplace
要 AWS Marketplace 使用目录 API 创建 EC2 映像生成器组件产品,请参阅创建产品。
更新映像生成器组件产品信息
您可以在 AWS Marketplace 管理门户上更新有关映像生成器组件产品的信息。
更新映像生成器组件产品信息
-
打开 AWS Marketplace 管理门户
,登录到卖家账户。 -
在 “产品” 菜单上,选择 “服务器” 。
-
在服务器产品页面上,选择产品。
-
在商品详情页面的请求更改菜单上,选择与您要更新的信息相对应的商品。
-
提交任何更改后,该请求将显示在 “请求” 选项卡上,状态为 “正在审核”,完成后将变为 “成功”。
向现有的映像生成器组件产品添加新版本
您可以使用向映像生成器组件产品添加新版本 AWS Marketplace Catalog API。 AWS Marketplace
要添加新版本,请执行以下操作:
-
从 AWS Marketplace 管理门户中获取产品 ID。
-
打开 AWS Marketplace 管理门户
,登录到卖家账户。 -
在 “产品” 菜单上,选择 “服务器” 。
-
在服务器产品页面上,选择产品。
-
在产品摘要中,复制产品 ID 。
-
-
使用以下代码示例,创建 JSON 格式的变更集文件。在示例中,
your-product-ID替换为您在步骤 1 中获得的产品 ID。new-version-name替换为您的版本标题。替换new-delivery-option-title为您的配送选项标题。[ { "ChangeType": "AddDeliveryOptions", "Entity": { "Identifier": "your-product-ID", "Type": "AmiProduct@1.0" }, "DetailsDocument": { "Version": { "VersionTitle": "new-version-name", "ReleaseNotes": "Release notes goes here." }, "DeliveryOptions": [ { "DeliveryOptionTitle": "new title", "Details": { "Ec2ImageBuilderComponentDeliveryOptionDetails": { "UsageInstructions": "Test usage instructions for IB", "AccessRoleArn": "arn:aws:iam::123456789:role/sample", "ComponentArn": "arn:aws:imagebuilder:us-east-1:123456789:component/sample/2.0.0/1" } } } ] } } ] -
使用名称保存变更集文件。
addIBversion.json -
在您的终端中 AWS CloudShell,或者运行以下命令:
aws marketplace-catalog start-change-set --catalog AWSMarketplace --region us-east-1 --change-set file://addIBversion.json
该start-change-set命令将返回一个ChangeSetId值。要监控变更集,请参阅监控变更集。
异步错误
以下错误特定于中的AddDeliveryOptions操作 AWS Marketplace Catalog API。当您在处理变更集DescribeChangeSet后调用时,会返回这些错误。有关使用DescribeChangeSet获取变更请求状态的更多信息,请参阅使用变更集。
注意
以下错误代码特定于映像生成器交付方法。有关、和等字段的现有错误消息 Usage Instructions Recommended Instance typeAccessRoleArn,请参阅添加新版本。
| 错误代码 | 错误消息 |
|---|---|
未找到资产 |
|
未找到资产 |
|
重复的组件名称 |
|
重复的组件名称 |
|
DUPLICATE_COMPONENT_ARN |
|
DUPLICATE_COMPONENT_ARN |
|
扫描错误 |
|
资产访问异常 |
|
资产访问异常 |
|
资产访问异常 |
|
资产访问异常 |
|
无效的映像生成器组件包 |
|
无效的映像生成器组件包 |
|
图像生成器组件太多了 |
|
不完整的_卖家_公众资料 |
|
无效的描述 |
|
组件名称无效 |
|
支持的操作系统版本无效 |
|
路径格式无效 |
|
不兼容操作系统类型 |
|
资产访问异常 |
|
资产访问异常 |
|
无效的 IB_COMPONENT_BUILD_VERSION |
|
无效的 IB_COMPONENT_PARAMENT_PARAM |
|
无效的 IB_COMPONENT_PARAMENT_PARAM |
|
缺少_IB_COMPONENT_参数 |
|
无效的 IB_COMPONENT_PARAMENT_PARAM |
|
启动测试失败 |
|
SSHAuthFailedForUserAndKeypair |
|
INVALID_IB_COMPONENT |
|
重复版本标题 |
|
版本标题无效 |
|
版本标题无效 |
|
版本标题无效 |
|
版本标题无效 |
|
无效的发行说明 |
|
无效的发行说明 |
|
无效的发行说明 |
|
无效的发行说明 |
|
无效的使用指令 |
|
无效的使用指令 |
|
无效的使用指令 |
|
重复配送选项标题 |
|
无效的配送选项标题 |
|
更新有关现有版本的信息
更新有关现有版本的信息
-
从 AWS Marketplace 管理门户中获取产品 ID。
-
打开 AWS Marketplace 管理门户
,登录到卖家账户。 -
在 “产品” 菜单上,选择 “服务器” 。
-
在服务器产品页面上,选择产品。
-
在产品摘要中,复制产品 ID 。
-
-
在您的终端中,运行以下命令。在命令中,
your-product-ID替换为您在步骤 1 中获得的 ID。aws marketplace-catalog describe-entity --catalog AWSMarketplace --region us-east-1 --entity-id 'your-product-ID' -
在返回的输出中,转到
DetailsDocument,Versions部分。复制要DeliveryOptions更新的版本的,Id值。 -
使用以下代码示例,创建 JSON 格式的变更集文件。在示例中,
your-product-ID替换为您在步骤 1 中获得的产品 ID。your-release-notes替换为您的发行说明。your-delivery-option-ID替换为您在步骤 3 中获得的配送选项的 ID。your-usage-instructions替换为您的使用说明。[ { "ChangeType": "UpdateDeliveryOptions", "Entity": { "Identifier": "your-product-ID", "Type": "AmiProduct@1.0" }, "DetailsDocument": { "Version": { "ReleaseNotes": "your-release-notes" }, "DeliveryOptions": [ { "Id": "your-delivery-option-ID", "Details": { "Ec2ImageBuilderComponentDeliveryOptionDetails": { "UsageInstructions": "your-usage-instructions" } } } ] } } ] -
使用名称保存变更集文件。
updateVersionInfo.json -
在您的终端中 AWS CloudShell,或者运行以下命令:
aws marketplace-catalog start-change-set --catalog AWSMarketplace --region us-east-1 --change-set file://updateVersionInfo.json
该start-change-set命令将返回一个ChangeSetId值。要监控变更集,请参阅监控变更集。
限制映像生成器组件的产品版本
限制版本会使买家无法使用该版本。您可以限制图像生成器组件产品的某个版本 AWS Marketplace 使用 AWS Marketplace 目录 API。您必须保持商品的至少一个版本不受限制 AWS Marketplace。你不能限制访问唯一的公共版本。
更新有关现有版本的信息
-
从 AWS Marketplace 管理门户中获取产品 ID。
-
打开 AWS Marketplace 管理门户
,登录到卖家账户。 -
在 “产品” 菜单上,选择 “服务器” 。
-
在服务器产品页面上,选择产品。
-
在产品摘要中,复制产品 ID 。
-
-
在您的终端中,运行以下命令。在命令中,
your-product-ID替换为您在步骤 1 中获得的 ID。aws marketplace-catalog describe-entity --catalog AWSMarketplace --region us-east-1 --entity-id 'your-product-ID' -
在返回的输出中,转到
DetailsDocument,Versions部分。复制要DeliveryOptions更新的版本的,Id值。 -
使用以下代码示例,创建 JSON 格式的变更集文件。在示例中,
your-product-ID替换为您在步骤 1 中获得的产品 ID。your-delivery-option-ID替换为您在步骤 3 中获得的配送选项的 ID。[ { "ChangeType": "RestrictDeliveryOptions", "Entity": { "Identifier": "your-product-ID", "Type": "AmiProduct@1.0" }, "DetailsDocument": { "DeliveryOptionIds": [ "your-delivery-option-ID" ] } } ] -
使用名称保存变更集文件。
restrictec2ibversion.json -
在您的终端中 AWS CloudShell,或者运行以下命令:
aws marketplace-catalog start-change-set --catalog AWSMarketplace --region us-east-1 --change-set file://restrictec2ibversion.json
该start-change-set命令将返回一个ChangeSetId值。要监控变更集,请参阅监控变更集。
监控变更集
该start-change-set命令将返回一个ChangeSetId值。您可以通过以下方式监控变更集的进度:
-
在终端中运行以下命令。在命令中。
changeset-ID用start-change-set命令返回的ChangeSetId值替换。aws marketplace-catalog describe-change-set ‐‐catalog AWSMarketplace ‐‐change-set-idchangesetID
保护软件下载
为了保护 ISV 软件知识产权并确保向 AWS Marketplace 买家提供稳定、一致的软件,请 AWS Marketplace 自动解析S3Download和WebDownload操作组件中的模块。然后,引用的文件将安全地存储在由管理的私有 Amazon S3 存储桶中 AWS Marketplace。要选择退出此摄取过程并独立管理软件下载,请运行使用wget或curl下载命令的 bash 脚本。