使用 AWS Marketplace Metering Service 進行每小時計量 - AWS Marketplace

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

使用 AWS Marketplace Metering Service 進行每小時計量

如果您的容器產品使用每小時每個任務或每個 Pod 定價,而不是自訂計量定價維度,則不必定義自訂計量維度。

RegisterUsage API 操作計量表軟體會依 Amazon Elastic Container Service (Amazon ECS) 任務或 Amazon Elastic Kubernetes Service (Amazon EKS) Pod 每小時使用,用量會按比例分配到第二個。最少 1 分鐘的使用量適用於短暫運作的任務或 Pod。軟體使用的連續計量由 自動處理 AWS Marketplace Metering Control Plane。 除了呼叫RegisterUsage一次以開始計量軟體使用之外,您的軟體不需要執行任何計量特定動作。

RegisterUsage 必須在啟動容器時立即呼叫 。如果您未在容器啟動的前 6 小時內註冊容器,AWS則 Marketplace Metering Service 不會提供前幾個月的任何計量保證。不過,計量將在當月繼續,直到容器結束為止。

的 AWS Marketplace Metering Control Plane 無論客戶的訂閱狀態為何, 都會繼續向客戶收取執行 Amazon 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操作進行測試呼叫。

每小時計量的產品載入表單

填寫每小時計量的產品負載表單時,除了定義產品的其他必要和選用欄位之外,還請為產品填寫下列欄位:

  • 每小時價格 – 產品每小時的價格。

  • Dimension Long Term Rate – 買方預付時長期合約的總軟體價格。

  • 長期持續時間 (天) – 長期合約的持續時間,以天為單位。

測試 的整合和預覽模式 RegisterUsage

使用 RegisterUsageAPI操作來測試整合,然後再將映像提交至 AWS Marketplace 進行發佈。

預覽模式的運作方式與生產模式相同,但預覽模式不會驗證使用產品的權限。若要RegisterUsage以預覽模式呼叫,請在 Amazon ECS或 Amazon 上執行您的產品,RegisterUsage從容器映像呼叫 EKS。使用 AWS 帳戶 您正在使用的 來列出 上的產品 AWS Marketplace。您的計量整合必須動態設定 AWS 區域,而不是進行硬式編碼。不過,在測試時,請在美國東部 (維吉尼亞北部) 區域啟動至少一個包含付費容器的 Amazon ECS任務或 Amazon EKS Pod。透過執行此操作, AWS Marketplace 操作團隊可以驗證您在該區域中使用日誌的工作。

注意

如果您的產品同時支援 Amazon ECS和 Amazon EKS,您只需在 Amazon 中啟動EKS,我們就能驗證您的整合。

在產品發佈所有必要的中繼資料和定價資訊之前,您無法完全測試整合。如果請求, AWS Marketplace 目錄操作團隊可以在預覽模式下驗證接收您的計量記錄。

處理 時發生錯誤 RegisterUsage

如果您的容器映像與 整合, AWS Marketplace Metering Service 並收到容器啟動ThrottlingException時以外的例外狀況,您應該終止容器以防止未經授權的使用。

以外的例外僅在對 RegisterUsage API 操作的初始呼叫中ThrottlingException擲出。CustomerNotSubscribedException 即使客戶在ECS任務或 Pod 仍在執行時取消訂閱,來自相同 Amazon 任務或 Amazon EKS Pod 的後續呼叫也不會擲回。這些客戶在取消訂閱並追蹤其用量後,仍需支付執行容器的費用。

下表說明RegisterUsageAPI操作可能會擲回的錯誤。每種 AWS SDK程式設計語言都有一組錯誤處理指南,如需其他資訊,請參閱 。

錯誤 Description
InternalServiceErrorException RegisterUsage 無法使用。
CustomerNotEntitiledException 客戶沒有產品的有效訂閱。
InvalidProductCodeException 作為請求的一部分傳入ProductCode的值不存在。
InvalidPublicKeyException 作為請求的一部分傳入PublicKeyVersion的值不存在。
PlatformNotSupportedException AWS Marketplace 不支援從基礎平台計量用量。僅 AWS Fargate 支援 Amazon EKS、ECSAmazon 和 。
ThrottlingException 對 的呼叫RegisterUsage會受到限流。
InvalidRegionException RegisterUsage 必須在與 Amazon ECS任務或 Amazon EKS Pod 啟動時 AWS 區域 相同的 中呼叫 。這可防止容器在呼叫 時選擇區域 (例如 withRegion(“us-east-1”)RegisterUsage