容器产品计费、计量和许可集成 - AWS Marketplace

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

容器产品计费、计量和许可集成

AWS Marketplace 与其他产品集成 AWS 服务 ,为您的集装箱产品提供计量和基于合同的定价。

采用 AWS Marketplace Metering Service按小时计量和自定义计量

要检查使用产品的权利以及对用量进行计量以进行计费,您可以使用 AWS Marketplace Metering Service。如果您想定义自己的定价单位并将使用量计给我们进行计费,请使用 MeterUsageAPI 操作进行集成。如果您想根据使用的任务或容器数量对产品进行定价,并自动 AWS 计量该使用情况,请使用 RegisterUsageAPI 操作进行集成。对于这两种类型的定价,您可以添加长期合同价格,而无需更改与 AWS Marketplace Metering Service集成的方式。

当您在中创建新的容器产品时 AWS Marketplace 管理门户,我们会提供一组产品标识符(产品代码和公钥),用于将您的产品与集成 AWS Marketplace Metering Service。

权利

通过与集成, AWS Marketplace Metering Service 您可以验证运行付费软件的客户是否订阅了您的产品 AWS Marketplace,从而保护您在容器启动时免受未经授权的使用。要验证授权,请使用MeterUsageRegisterUsageAPI 操作,具体取决于您的定价模式。对于每小时和固定每月定价模式,请使用 RegisterUsage API 操作。对于自定义计量定价模式,请使用 MeterUsage API 操作。

如果买家无权使用您的产品,则这些 API 操作会返回 CustomerNotEntitledException 异常。

注意

如果买家在运行您的产品时取消订阅了产品,他们有权继续运行产品。但是,他们无法为您的产品启动其他容器。

集成指南

在创建和发布容器产品以及使用 MeterUsageRegisterUsage API 操作验证权利和计量时,请记住以下准则:

  • 请勿在软件或 Docker 容器镜像中配置 AWS 凭据。 AWS 当您的容器映像在 Amazon ECS 任务或 Amazon EKS 容器中运行时,系统会在运行时自动获取买家证书。

  • 要从 Amazon EKS 调用MeterUsageRegisterUsage API 操作,您必须使用支持的 AWS 软件开发工具包。要测试 Amazon EKS 的 MeterUsageRegisterUsage 集成,您运行的 Amazon EKS 集群必须运行 Kubernetes 1.13.x 或更高版本。 AWS Identity and Access Management (IAM) 角色需要 Kubernetes 1.13 才能支持容器。正在运行的 pod 需要 IAM 角色才能获得在 Amazon EKS 上调用这些操作所需的 AWS 证书。

  • 您可以进行本地开发,但您将获得 PlatformNotSupportedException 异常。当您在容器服务(亚马逊 ECS、Amazon EKS 和 Fargate)上启动 AWS 容器时,不会发生此异常。

支持的 AWS 区域

有关所有 AWS Marketplace 支持的列表 AWS 区域,请参阅全球基础设施网站上的区域表

获取 AWS 区域 用于计量的

将用于计量的容器与MeterUsageRegisterUsage API 操作集成时,请不要将 AWS SDK 配置为使用特定的 AWS 区域。必须在运行时动态获取区域。

例如,客户启动 Amazon ECS 任务或 Amazon EKS 容器组 (pod)。RegisterUsage API 操作在与启动 Amazon ECS 任务或 Amazon EKS 容器组 (pod) 的区域不同的区域中调用。因此,RegisterUsage API 操作会抛出 InvalidRegionException 错误。

AWS SDK 语言无法以一致AWS_REGION的方式确定。如果您的 SDK 没有自动获取 AWS_REGION,则需要手动编写软件来确定 AWS_Region。例如,当环境变量或其他配置不存在时, AWS SDK for Java 会自动使用 Amazon EC2 实例元数据(具体而言ec2InstanceMetadata)来获取该区域。在这种情况下,只有在 AWS_REGION 环境变量不存在时才调用 ec2InstanceMetadata

有关如何在运行 AWS 区域 时动态获取的信息,请参阅适用于您的编程语言的 AWS 开发工具包开发人员指南

防止计量修改

为买家引入修改或覆盖对 RegisterUsageMeterUsage 的调用的方法可能导致不受欢迎的账单和付款问题。我们强烈建议您集成计量和授权逻辑。

在设计您的产品以防止计量修改时,请注意以下事项:

  • 如果买家可以插入包含 CMDENTRYPOINT 指令的新映像层,请直接将 RegisterUsageMeterUsage 集成到买家正在通过容器映像运行的软件中。否则,从基本映像中通过 CMDENTRYPOINT 执行的对 RegisterUsageMeterUsage 的调用可能会被买家覆盖。

  • 我们建议您管理您的软件用作输入 AWS Marketplace 的产品代码,RegisterUsage或者以买家无法修改MeterUsage的方式进行管理。但是,如果您的产品以客户可以覆盖的方式管理产品代码 AWS CloudFormation,例如 Helm chart 或 Kubernetes 清单,则必须维护可信 AWS Marketplace 产品代码列表。这样可确保您的软件作为 RegisterUsageMeterUsage 的输入传递的产品代码有效。

  • 如果任何受信任的产品代码适用于免费产品,请确保它们无法用于替代付费产品代码。

与的合同定价 AWS License Manager

对于采用合同定价的基于容器的产品,您可以使用 AWS License Manager 将许可证与您的产品关联起来。

AWS License Manager 是一种许可证管理工具,可让您的应用程序跟踪和更新客户购买的许可证(也称为授权)。本部分提供有关如何将您的产品与 AWS License Manager集成的信息。集成完成后,您可以在 AWS Marketplace上发布您的产品清单。

有关的更多信息 AWS License Manager,请参阅《AWS License Manager 用户指南》和《AWS CLI命令参考》一AWS License Manager节。

注意
  • 合同到期后,客户无法启动新的容器实例。但是,在合同有效期内,他们可以启动任意数量的实例。这些许可证不绑定到特定的节点或实例。在任何节点上的任何容器上运行的任何软件都可以签出许可证,只要它具有分配的 AWS 凭证。

  • 专属优惠创建 – 卖家可以使用 AWS Marketplace 管理门户中的专属优惠创建工具为产品生成专属优惠。

  • 报告 – 您可以通过在 AWS Marketplace 管理门户中的报告部分设置 Amazon S3 存储桶来设置数据源。有关更多信息,请参阅 卖家报告、数据源和控制面板

集成工作流

以下步骤显示了将容器产品与 AWS License Manager集成的工作流:

  1. 卖家创建具有 AWS License Manager 集成功能的产品。

  2. 卖家在上架商品 AWS Marketplace。

  3. 买家在上面找到产品 AWS Marketplace 并购买。

  4. 许可证通过买家的 AWS 账户发送给他们。

  5. 买家通过启动 Amazon EC2 实例、 Amazon EC2 任务或 Amazon EKS 容器组 (pod) 软件来使用该软件。客户使用 IAM 角色进行部署。

  6. 软件读取买方 AWS License Manager 账户中的许可证,发现购买的权利并相应地配置功能。

    注意

    License Manager 不进行任何跟踪或更新;这些是通过卖家的应用程序完成的。