本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
容器產品計費、計量和授權整合
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,以防止您在容器啟動時遭到未經授權的使用。若要驗證權利,請根據您的定價模型使用 MeterUsage 或 RegisterUsage API 操作。對於每小時和固定每月定價模型,請使用 RegisterUsage
API 操作。對於自訂計量定價模型,請使用 MeterUsage
API 操作。
如果買方無權使用您的產品,這些 API 操作會傳回CustomerNotEntitledException
例外狀況。
注意
如果買方在執行產品時取消訂閱,他們有權繼續執行產品。不過,它們無法為您的產品啟動其他容器。
整合準則
當您建立和發佈容器產品,並使用 MeterUsage
或 RegisterUsage
API 操作進行權利和計量時,請記住下列準則:
-
請勿在軟體或 Docker 容器映像中設定 AWS 登入資料。當容器映像在 Amazon ECS 任務或 Amazon EKS Pod 中執行時,系統會自動取得買方的 AWS 登入資料。
-
若要從 Amazon EKS 呼叫
MeterUsage
或RegisterUsage
API 操作,您必須使用支援的 AWS SDK。若要測試MeterUsage
或RegisterUsage
整合 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 區域 的
將 容器與 MeterUsage
或 RegisterUsage
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 開發套件開發人員指南
防止計量修改
介紹買方修改或覆寫對 的呼叫,RegisterUsage
或MeterUsage
可能導致不良的帳單和付款問題。我們強烈建議您整合計量和權利邏輯。
設計產品以防止計量修改時,請記住下列事項:
-
如果買方可以插入包含
CMD
或ENTRYPOINT
指示的新映像層,請直接將RegisterUsage
或 整合MeterUsage
到買方透過容器映像執行的軟體中。否則,買方可能會覆寫透過RegisterUsage
基本映像CMD
或從ENTRYPOINT
基本映像MeterUsage
執行的呼叫。 -
我們建議您管理軟體用作輸入 AWS Marketplace 的產品代碼
MeterUsage
,RegisterUsage
或以買方無法修改的方式進行。不過,如果您的產品以客戶可以覆寫的方式管理產品代碼,例如 AWS CloudFormation、Helm Chart 或 Kubernetes 資訊清單,您必須維護信任 AWS Marketplace 的產品代碼清單。這是為了確保您的軟體做為輸入傳遞至RegisterUsage
或MeterUsage
的產品程式碼有效。 -
如果您信任的任何產品代碼是免費產品,請確保它們不能用來取代付費產品代碼。
使用 的合約定價 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 管理入口網站。
-
報告 – 您可以在 的報告區段中設定 Amazon S3 儲存貯體,以設定資料摘要 AWS Marketplace 管理入口網站。如需詳細資訊,請參閱中的賣方報告、資料饋送和儀表板 AWS Marketplace。
整合工作流程
下列步驟顯示將容器產品與 整合的工作流程 AWS License Manager:
-
賣方建立具有 AWS License Manager 整合的產品。
-
賣方會列出 上的產品 AWS Marketplace。
-
買方在 上找到 AWS Marketplace 並購買產品。
-
授權會在其 中傳送給買方 AWS 帳戶。
-
買方透過啟動 Amazon EC2 執行個體、Amazon ECS 任務或 Amazon EKS Pod 軟體來使用軟體。客戶使用 IAM 角色部署 。
-
軟體會讀取買方 AWS License Manager 帳戶中的授權、探索購買的權限,並相應地佈建功能。
注意
License Manager 不會執行任何追蹤或更新;這由賣方的應用程式完成。