容器產品計費、計量和授權整合 - 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 計量服務。如果您想要定義自己的定價單位和計量表,以用於計費,請使用 MeterUsage API 操作整合 。如果您想要根據使用的任務或 Pod 數量定價產品,並讓 AWS 計量器自動使用,請使用 RegisterUsage API 操作整合 。對於這兩種類型的定價,您可以新增長期合約價格,而無需變更與 整合的方式 AWS Marketplace Metering Service。

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

Entitlement

與 整合 AWS Marketplace Metering Service 可讓您驗證執行付費軟體的客戶是否已訂閱您的 產品 AWS Marketplace,以防止您在容器啟動時遭到未經授權的使用。若要驗證權利,請根據您的定價模型使用 MeterUsageRegisterUsage API 操作。對於每小時和固定每月定價模型,請使用 RegisterUsage API 操作。對於自訂計量定價模型,請使用 MeterUsage API 操作。

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

注意

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

整合準則

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

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

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

  • 您可以進行本機開發,但您會收到PlatformNotSupportedException例外狀況。當您在容器服務 (Amazon 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 的區域不同的區域中呼叫。因此,RegisterUsageAPI 操作會擲出InvalidRegionException錯誤。

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

如需有關如何在 AWS 區域 執行時間動態取得 的資訊,請參閱適用於您的程式設計語言的 AWS 開發套件開發人員指南

防止計量修改

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

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

  • 如果買方可以插入包含 CMDENTRYPOINT指示的新映像層,請直接將 RegisterUsage或 整合MeterUsage到買方透過容器映像執行的軟體中。否則,買方可能會覆寫透過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 不會執行任何追蹤或更新;這由賣方的應用程式完成。