AWS Marketplace
针对 AWS Marketplace 提供商的用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

集成付费容器软件

集成先决条件

  • 您已在 AWS Marketplace 上注册为卖家。

  • 您已获得 AWS Marketplace 产品代码和公有密钥。产品代码用于向 AWS Marketplace 注册 您的软件,如果您选择执行数字签名验证,则可以使用公有密钥。

RegisterUsage 指南

  • 如果未通过您的容器映像将 RegisterUsage 直接集成到客户运行的软件中,并且您预计客户会插入包含 CMD 或 ENTRYPOINT 指令的新映像层,则从基本映像通过 CMD 或 ENTRYPOINT 执行的对 RegisterUsage 的调用很可能会被客户覆盖RegisterUsage 的替代方案包括固定月度定价或修改底层软件以便直接集成 RegisterUsage(假设您有权这样做)。

  • 请勿在您的软件或 docker 容器映像中配置 AWS 凭证,除非您在本地进行测试。当您的容器映像在 Amazon ECS 任务中运行时,会自动在运行时获取 AWS 凭证。

  • 预览模式将允许您在完全载入产品之前进行测试。

  • 请确保在 us-east-1 区域中启动至少一个包含您的付费容器的 Amazon ECS 任务。这将允许 MP 产品发布来验证您的 RegisterUsage 集成。

  • 可以进行本地开发,但您将收到 PlatformNotSupportedException。收到 PlatformNotSupportedException 指示在 Amazon ECS 上启动容器时,它将按预期运行。

管理 AWS Marketplace 产品代码

最佳实践是以客户无法篡改的方式管理您的软件将其用作 RegisterUsage 的输入的 AWS Marketplace 产品代码。但是,如果您的产品以客户可以覆盖的方式管理产品代码,例如 AWS CloudFormation、Helm 图表或 Kubernetes 清单,则您必须保留受信任的 AWS Marketplace 产品代码列表以确保您的软件作为 RegisterUsage 的输入传递的 AWS Marketplace 产品代码有效。此外,如果任何受信任的产品代码适用于免费产品,则您必须确保它们无法用于替代付费产品代码。

获取 RegisterUsage 的 AWS 区域

请勿将 AWS 开发工具包配置为使用特定 AWS 区域。必须在运行时动态获取区域。如果客户启动 Amazon ECS 任务并在不同于启动 Amazon ECS 任务时所在的 AWS 区域的 AWS 区域中调用 RegisterUsage,则 RegisterUsage 会引发 InvalidRegionException

这就是说,AWS 开发工具包语言不以一致的方式确定 AWS_REGION。例如,在环境变量或其他配置不存在时,AWS SDK for Java会自动使用 Amazon EC2 实例元数据(具体为 ec2InstanceMetadata)获取 AWS 区域。但是,如果环境变量或其他 AWS 开发工具包配置不存在,其他 AWS 开发工具包语言不会自动默认使用 ec2InstanceMetadata。此外,仅当 AWS_REGION 环境变量不存在时,您才应调用 ec2InstanceMetadata

重要

如果您使用的语言不是AWS SDK for Java,则必须更新 RegisterUsage 实施以通过 ec2InstanceMetadata 动态获取区域,否则您的任务将非常容易失败。