使用 AWS Marketplace 计量服务配置每小时计量 - AWS Marketplace

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS Marketplace 计量服务配置每小时计量

如果您的容器产品使用每小时每任务或每容器组 (pod) 定价,而不是自定义计量定价维度,则无需定义自定义计量维度。您可以使用 AWS Marketplace 计量服务对容器产品进行每小时计量 AWS Marketplace。以下各节介绍如何使用 AWS Marketplace 计量服务配置每小时计量。

RegisterUsageAPI操作计量每个亚马逊弹性容器服务 (AmazonECS) 任务或每个亚马逊 Elastic Kubernetes Service (EKSAmazon) Pod 每小时的软件使用量,使用量按比例分配给第二个。最低 1 分钟用量适用于有效期较短的任务或 pod。软件使用的连续计量由自动处理 AWS Marketplace Metering Control Plane。 除了调用RegisterUsage一次即可开始计量软件使用情况外,您的软件无需执行任何计量特定的操作。

RegisterUsage 必须在启动容器时立即调用。如果您在集装箱启动的前 6 个小时内没有注册集装箱,AWSMarketplace Metering Service 将不为前几个月提供任何计量保证。但是,计量将在当月继续进行,直到容器结束。

的 AWS Marketplace Metering Control Plane 继续向客户收取运行亚马逊ECS任务和 Amazon EKS Pod 的费用,无论客户的订阅状态如何。这样,您的软件就无需在任务或容器组 (pod) 首次成功启动后执行授权检查。

每小时计量先决条件

发布产品之前,您必须首先完成以下操作:

  1. 在中创建新的容器产品 AWS Marketplace 管理门户,并记下其产品代码。

    有关更多信息,请参阅 概述:创建容器产品

  2. 为运行应用程序的任务或 Pod 使用 AWS Identity and Access Management (IAM) 角色,并具有调用所需的IAM权限RegisterUsage。IAM托管策略AWSMarketplaceMeteringRegisterUsage具有这些权限。

  3. (可选)如果您想查看日志记录,我们建议您在任务或 pod 定义中启用 AWS CloudTrail 日志记录。

  4. 使用您定义的所有定价维度的记录对RegisterUsageAPI操作进行测试调用。

每小时计量的产品加载表单

在填写每小时计量的产品加载表单时,除了定义产品的其他必填字段和可选字段外,还要为您的产品填写以下字段:

  • 每小时价格 - 产品每小时的价格。

  • 维度长期费率 – 买家预先付款时,长期合同中的软件总价格。

  • 长期期限(天) - 长期合同的期限(以天为单位)。

测试 RegisterUsage 的集成和预览模式

在将图片提交给发布之前,请使用该RegisterUsageAPI操作来 AWS Marketplace 测试您的集成。

预览模式的运行方式与生产模式完全相同,但预览模式不验证对您的产品的使用权。要RegisterUsage在预览模式下调用,请通过在 Amazon ECS 或 Amazon 上运行您的产品,RegisterUsage从容器图片中调用EKS。使用 AWS 账户 您正在使用的上架商品 AWS Marketplace。您的计量集成必须动态设置 AWS 区域,而不是对其进行硬编码。但是,在测试时,请至少在美国东部(弗吉尼亚北部)地区启动一个包含您的付费容器的 Amazon ECS 任务或包含您的付费容器的 Amazon EKS pod。这样, AWS Marketplace 运营团队就可以使用该区域的日志来验证您的工作。

注意

如果您的产品同时支持亚马逊ECS和亚马逊EKS,您只需要在亚马逊EKS上线,我们就可以验证您的集成。

在使用所有必需的元数据和定价信息发布您的产品之前,您无法完全测试集成。如果需要, AWS Marketplace 目录运营团队可以在预览模式下验证您的计量记录是否收到。

RegisterUsage 中的错误处理

如果您的容器镜像与集成, AWS Marketplace Metering Service 并且ThrottlingException在容器启动之外收到异常,则应终止容器以防止未经授权的使用。

除此之外的ThrottlingException异常仅在初次调用RegisterUsageAPI操作时才会引发。CustomerNotSubscribedException即使客户在ECS任务或 EKS Pod 仍在运行时取消订阅,来自同一 Amazon 任务或 Amazon Pod 的后续调用也不会抛出。这些客户在取消订阅并跟踪其使用情况后仍需支付运行容器的费用。

下表描述了该RegisterUsageAPI操作可能引发的错误。每种 AWS SDK编程语言都有一套错误处理指南,您可以参考这些指南以获取更多信息。

错误 描述
InternalServiceErrorException RegisterUsage 不可用。
CustomerNotEntitledException 客户没有产品的有效订阅。
InvalidProductCodeException 作为请求的一部分传入的 ProductCode 值不存在。
InvalidPublicKeyException 作为请求的一部分传入的 PublicKeyVersion 值不存在。
PlatformNotSupportedException AWS Marketplace 不支持从底层平台计量使用情况。仅支持 Amazon ECS EKS、Amazon 和 AWS Fargate 。
ThrottlingException RegisterUsage 的调用受限。
InvalidRegionException RegisterUsage必须使用与启动 Amazon ECS 任务或 Amazon EKS pod 相同的 AWS 区域 方法进行调用。这可防止容器在调用 RegisterUsage 时选择区域(例如,withRegion(“us-east-1”))。