容器產品計費、計量和授權整合 - AWS Marketplace

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

容器產品計費、計量和授權整合

AWS Marketplace 與其他 整合 AWS 服務 ,為您的容器產品提供計量和以合約為基礎的定價。對於使用量定價的容器型產品,您可以使用 AWS Marketplace Metering Service來檢查使用產品和計量用於計費的權限。對於具有合約定價的容器型產品,您可以使用 AWS License Manager 將授權與產品建立關聯。下列各節提供每小時和自訂計量, AWS Marketplace Metering Service 以及與 簽訂合約定價的詳細資訊 AWS License Manager。

使用 的每小時和自訂計量 AWS Marketplace Metering Service

若要同時檢查使用 產品的許可,以及用於計費的計量用量,請使用 AWS Marketplace 計量服務 。如果您想要定義自己的定價單位和計量表,以用於計費,請使用 MeterUsageAPI操作整合 。如果您想要根據使用的任務或 Pod 數量定價產品,並自動設定該使用量 AWS 的計量表,請使用 RegisterUsageAPI操作進行整合。對於這兩種類型的定價,您可以新增長期合約價格,而無需變更與 整合的方式 AWS Marketplace Metering Service。

當您在 中建立新的容器產品時 AWS Marketplace 管理入口網站,我們會提供一組產品識別符 (產品程式碼和公有金鑰),用於整合您的產品與 AWS Marketplace Metering Service。

Entitlement

與 整合 AWS Marketplace Metering Service 可讓您驗證執行付費軟體的客戶是否已訂閱 上的產品 AWS Marketplace,以防止容器啟動時未經授權使用。若要驗證權限,請使用 MeterUsageRegisterUsageAPI操作,具體取決於您的定價模型。對於每小時和固定每月定價模型,請使用 RegisterUsageAPI操作。對於自訂計量定價模型,請使用 MeterUsageAPI操作。

如果買方無權存取您的產品,這些API操作會傳回CustomerNotEntitledException例外狀況。

注意

如果買家在執行產品時取消訂閱,他們有權繼續執行產品。但是,他們無法為您的產品啟動其他容器。

整合指南

當您建立和發佈容器產品,並使用 MeterUsageRegisterUsageAPI操作進行權限和計量時,請記住下列準則:

  • 請勿在軟體或 Docker 容器映像中設定 AWS 憑證。當容器映像在 Amazon ECS任務或 Amazon EKS Pod 中執行時,系統會自動取得買方的 AWS 憑證。

  • 若要從 Amazon 呼叫 MeterUsageRegisterUsageAPI操作EKS,您必須使用支援的 AWS SDK。若要測試MeterUsageRegisterUsage整合 Amazon EKS,您必須執行執行 Kubernetes 1.13.x 或更高版本的 Amazon EKS叢集。 AWS Identity and Access Management (IAM) 角色需要 Kubernetes 1.13 才能支援 Pod。IAM 角色是執行中 Pod 所需的,以取得在 Amazon 上叫用這些動作所需的 AWS 憑證EKS。

  • 您可以進行本機開發,但您將獲得PlatformNotSupportedException例外狀況。當您在容器服務 (Amazon ECS、Amazon 和 Fargate) 上啟動 AWS 容器時EKS,不會發生此例外狀況。

支援的 AWS 區域

如需所有 AWS Marketplace 支援的 清單 AWS 區域,請參閱全球基礎設施網站上的區域表

取得用於計量 AWS 區域 的

將 容器與 MeterUsageRegisterUsageAPI操作整合時,請勿將 AWS SDK設定為使用特定 AWS 區域。區域必須在執行階段動態取得。

例如,客戶啟動 Amazon ECS任務或 Amazon EKS Pod。RegisterUsage API 操作會在與啟動 Amazon ECS任務或 Amazon EKS Pod 的區域不同的區域中呼叫。因此,RegisterUsageAPI操作會擲回InvalidRegionException錯誤。

AWS SDK 語言不會AWS_REGION以一致的方式判斷 。如果您的 SDK 沒有自動提取 AWS_REGION,則需要手動寫入軟體來判斷 AWS_Region。例如,當環境變數或其他組態不存在時, AWS SDK for Java 會自動使用 Amazon EC2執行個體中繼資料 (特別是 ec2InstanceMetadata) 來取得 區域。在此執行個體中,只有在AWS_REGION環境變數不存在ec2InstanceMetadata時才呼叫 。

如需有關如何在 AWS 區域 執行階段動態取得 的資訊,請參閱程式設計語言的AWSSDK開發人員指南

防止計量修改

介紹買方修改或覆寫 呼叫的方式RegisterUsage,否則MeterUsage可能會導致不良的帳單和付款問題。我們強烈建議您整合計量和權利邏輯。

設計產品以防止計量修改時,請記住下列事項:

  • 如果買家可以插入包含 CMDENTRYPOINT指示的新映像層,請直接整合 RegisterUsageMeterUsage到買家透過容器映像執行的軟體中。否則,買家可能會覆寫透過RegisterUsage基本映像CMD或從ENTRYPOINT基本映像MeterUsage執行的呼叫。

  • 建議您管理軟體用來輸入 AWS Marketplace 的產品碼MeterUsageRegisterUsage或以買家無法修改的方式進行。但是,如果您的產品以客戶可以覆寫的方式管理產品代碼,例如 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 的憑證,就可以簽出授權。

  • Private Offer Creation – 賣方可以使用 中的 Private Offer 建立工具,為產品產生私有優惠 AWS Marketplace 管理入口網站。

整合工作流程

下列步驟顯示將容器產品與 整合的工作流程 AWS License Manager:

  1. 賣方建立具有 AWS License Manager 整合的產品。

  2. 賣方會在 上列出產品 AWS Marketplace。

  3. 買方在 上找到 AWS Marketplace 並購買產品。

  4. 授權會在其 中傳送給買方 AWS 帳戶。

  5. 買方透過啟動 Amazon EC2執行個體、Amazon ECS任務或 Amazon EKS Pod 軟體來使用 軟體。客戶使用 IAM角色部署 。

  6. 軟體會讀取買方 AWS License Manager 帳戶中的授權、探索購買的權限,並相應地佈建功能。

    注意

    License Manager 不會執行任何追蹤或更新;這由賣方的應用程式完成。