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

付费产品的权限和计量

通过 AWS Marketplace 销售的付费容器软件产品必须与 AWS Marketplace Metering Service 集成并为软件权限和计量调用 RegisterUsage 操作。目前不支持从运行在 Amazon ECS 之外的容器调用 RegisterUsage。Amazon ECS 的免费和 BYOL 产品无需调用 RegisterUsage,但如果您希望在卖家报告中接收用量数据,则可以选择执行此操作。以下各部分将介绍 RegisterUsage 的行为。

授权

RegisterUsage 使您能够验证运行您的付费软件的客户是否在 AWS Marketplace 上订阅您的产品,从而使您能够防止未经授权的使用。仅在容器启动时需要与 RegisterUsage 集成的容器映像以防止未经授权的使用。因此,仅会在初次调用 RegisterUsage 时引发 CustomerNotSubscribedException/PlatformNotSupportedException。从同一 Amazon ECS 任务实例(例如,task-id)进行的后续调用不会引发 CustomerNotSubscribedException,即使客户在 Amazon ECS 任务仍在运行时取消订阅也是如此。

计量

RegisterUsage 仅执行软件计量,基础设施计量由 Amazon EC2 控制层面在以下情况下处理:客户在 Amazon ECS 上启动 Amazon ECS 任务,并为 Amazon EC2 实例使用付费而不管他们是否正在运行 Amazon ECS 任务。选择在 Amazon Fargate 上运行任务的客户将基于 Amazon ECS 任务计算配置和 Amazon ECS 任务执行持续时间为基础设施使用付费。

RegisterUsage 计量每个 Amazon ECS 任务每小时的软件使用,将用量按比例分配到秒。最低 1 分钟用量适用于有效期较短的任务。例如,如果客户具有 10 个节点的 Amazon ECS 集群并创建一个配置为守护程序集的 Amazon ECS 服务,则 Amazon ECS 将在所有 10 个集群节点上启动任务,并向客户收取费用 (10 * hourly_rate)。软件使用的计量由 AWS Marketplace Metering 控制层面自动处理。除了调用 RegisterUsage 一次以启动软件使用的计量外,您的软件无需执行任何计量特定操作。AWS Marketplace Metering 控制层面还将继续针对正在运行的 Amazon ECS 任务对客户计费,而不管客户订阅状态如何,因此您的软件无需在运行时执行权限检查。

要快速启动并运行,请使用集成付费容器软件中的步骤将您的付费容器软件与 AWS Marketplace Metering Service 集成。您不必使用 AWS Marketplace 完全载入您的付费容器产品即可执行此集成测试。

错误处理

如果您的容器映像与 RegisterUsage 集成并在容器启动时收到 ThrottlingException 之外的异常,您应终止容器映像以防止未经授权的使用。仅在容器启动时需要与 RegisterUsage 集成的容器映像来防止未经授权的使用,因此仅在初次调用 RegisterUsage 时会引发 ThrottlingException 以外的异常。从同一 Amazon ECS 任务实例(例如,task-id)进行的后续调用不会引发 CustomerNotSubscribedException,即使客户在 Amazon ECS 任务仍在运行时取消订阅也是如此。

下表描述了 RegisterUsage 可能会引发的错误。每个 AWS 开发工具包编程语言都有一组错误处理准则,您可以参阅它们来了解其他信息。

错误 描述
InternalServiceErrorException RegisterUsage 不可用。
CustomerNotEntitiledException 客户没有产品的有效订阅。
InvalidProductCodeException 作为请求的一部分传入的 ProductCode 值不存在。
InvalidPublicKeyException 作为请求的一部分传入的 PublicKeyVersion 值不存在。
PlatformNotSupportedException AWS Marketplace 不支持来自底层平台的计量用量。目前仅支持 Amazon ECS。
ThrottlingException RegisterUsage 的调用受限。
InvalidRegionException 必须在启动 Amazon ECS 任务时所在的 AWS 区域中调用 RegisterUsage。这可防止容器在调用 RegisterUsage 时对区域(例如,withRegion(“us-east-1”))进行硬编码。

本页内容: