使用 AWS Marketplace 計量服務為容器產品自訂計量 - AWS Marketplace

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

使用 AWS Marketplace 計量服務為容器產品自訂計量

AWS Marketplace容器產品可以針對每個產品最多 24 個不同的定價維度進行自訂計量。每個維度都可以有相關的長期合約價格。若要啟用自訂計量,請將您的容器產品與 AWS Marketplace 計量服務整合。您可以使用 MeterUsageAPI 操作定義自己的定價單位和該用量的自訂計量,以AWS進行計費。

價格維度在兩個位置定義,一次是在產品載入表單中定義,一次是在MeterUsage操作中定義。這種雙因素方法可確保後續選件在向公眾提供之前按預期運作。

若要設定自訂計量,您需要選擇用量類別、單位類型和定價維度:

  • 使用類別 — 使用類別可幫助買家了解您的產品是什麼以及如何使用它。

  • 單位類型 — 單位類型定義計費的單位。例如,頻寬 (以 GBp 或 MBps 為單位)、主機數目或以 MB、GB 或 TB 為單位測量的資料。

  • 定價維度 — 定價維度代表您已設定每單位價格的功能或服務 (例如,使用者、掃描、vCPUs 或已部署的代理程式)。定價維度是公開的。不過,您仍可以為公共產品定義私有授權和使用自有授權 (BYOL)。不要在計量記錄中發送定價。您計算單位的數量,我們將其與您在創建產品時定義的價格一起使用,以計算買方帳單。

    如果您的產品定價不符合任何預先定義的類別或單位類型,您可以選擇「一般單位」類別。然後,使用維度描述來描述單位。

或者,您可以依據追蹤的屬性,將使用量分配到配置中。配置會以買方的標記來表示。這些標籤可讓買家檢視依標籤值劃分為使用量的成本。例如,如果您由使用者收費,且使用者具有「部門」屬性,則您可以使用標籤的索引鍵為「部門」,而且每個值有一個配置,來建立使用量配置。這不會變更您報告的價格、尺寸或總用量,但可讓客戶依產品適合的類別來檢視其成本。

我們建議您每小時傳送一次測光記錄。不過,您也可以彙總每日或每月期間的使用量。如果您遇到中斷情況,您可以彙總買家軟體使用量,並在接下來的幾個小時內傳送計量。您每小時無法傳送一筆以上的記錄。

重要

每小時追蹤免費試用和預付權利。因此,單獨傳送這些記錄可能會導致買家收取超額費用。

自訂計量前準備

發佈產品之前,您必須執行下列動作業:

  1. 在中建立新的容器產品AWS Marketplace 管理入口網站,並記下其產品代碼。

  2. 在產品裝載表格中填寫必要的尺寸信息,然後將其退回給我們進行處理。

  3. 針對執行應用程式的工作或網繭使用AWS Identity and Access Management (IAM) 角色,並具有呼叫所需的 IAM 權限MeterUsage。IAM 受管政策AWSMarketplaceMeteringRegisterUsage具有這些許可。

  4. (選擇性) 如果您想要查看AWS CloudTrail記錄,建議您在工作或網繭定義中啟用記錄。

  5. MeterUsage API 作業進行測試呼叫,其中包含您定義的所有定價維度的記錄。

自定義計量的產品負載表

當填寫自定義計量的產品負載表格時,每個產品最多可以有 24 個尺寸。維度在下列欄位中定義:

  • 維度名稱 — 容器應用程式將計量記錄傳送至AWS Marketplace Metering Service. 此名稱代表買家將使用哪個維度。此名稱會顯示在帳單報告中。設定名稱後,您就無法變更。

  • 維度說明 — 維度的買家說明。說明不能超過 70 個字元。產品公開發佈給買家後,此欄位就無法變更。

  • 尺寸率 — 當買家按去付款時,該產品的每單位軟件價格。此場支持三位小數。

  • 維度長期費率 — 買家預付款時,長期合約的軟體總價格。

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

測試MeterUsage整合與預覽模式

在將影像提交至發佈之前,請先使用此MeterUsage作業測試您的整合。AWS Marketplace

預覽模式的運作方式與生產模式相同,但預覽模式不會驗證使用產品的權利。要MeterUsage在預覽模式下調MeterUsage用,請在 Amazon Elastic Container Service (Amazon ECS) 或 Amazon Elastic Kubernetes Service (Amazon EKS),AWS 帳戶您可以在上列出產品AWS Marketplace。您的計量整合必須動態設定AWS 區域,而不是對其進行硬式編碼。但是,在測試時,請在美國東部 (維吉尼亞北部) 區域啟動至少一個包含付費容器的 Amazon ECS 任務或 Amazon EKS 網繭,以便AWS Marketplace操作團隊可以使用該區域中的日誌驗證您的工作。

注意

如果您的產品同時支援亞馬遜 ECS 和亞馬遜 EKS,您只需要在亞馬遜 EKS 中推出,我們即可驗證您的整合。

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

的錯誤處理MeterUsage

如果您的容器映像檔與MeterUsage作業整合,並且ThrottlingException在容器啟動時收到例外狀況,您應該終止容器以防止未經授權的使用。

ThrottlingException會在初始呼叫時擲回以外的例外狀況MeterUsage。即使客戶在任務或網繭仍在執行時取消訂閱,來自相同 Amazon ECS 任務或 Amazon EKS 網繭的後續呼叫CustomerNotSubscribedException也不會擲回。這些客戶在取消訂閱並追蹤其使用情況之後,仍需支付執行容器的費用。

有關的常見錯誤的詳細描述,請參閱AWS Marketplace Metering Service API 參考MeterUsage中的MeterUsage. 每種AWS SDK 程式設計語言都有一組錯誤處理準則,您可以參考這些準則以取得其他資訊。

供應商計量標記 (選擇性)

供應商計量標記可協助獨立軟體廠商 (ISV) 讓買家更精細地瞭解其軟體使用情況,並協助他們執行成本分配。

有多種方法可以標記買家的軟體使用。其中一種方法是先詢問買家希望在成本分配中看到的內容。然後,您可以將用量分割為買家帳戶追蹤的屬性。屬性的範例包括AccountIdBusiness UnitCost Centers、以及產品的其他相關中繼資料。這些屬性會以標籤的形式公開給買家。透過標籤,買家可以在AWS帳單主控台 (https://console.aws.amazon.com/billing/) 中,依標籤值來檢視分成使用量的費用。供應商計量標記不會變更您報告的價格、尺寸或總用量。它允許您的客戶按適合您產品的類別查看其成本。

在常見的使用案例中,買家會訂閱您的產品AWS 帳戶。買方還有許多與同一產品訂閱相關聯的用戶。您可以使用具有索引鍵的標籤建立使用量配置AccountId,然後將使用量分配給每個使用者。在這種情況下,買家可以在其 Billing and Cost Management 主控台中啟用AccountId標籤,並分析個別使用者的使用情況。

賣家體驗

賣方可以使用相同的標籤集合資源的計量記錄,而不是彙總所有資源的使用量。例如,賣家可以構建包含不同桶的計量記錄UsageAllocations。每個值區UsageQuantity代表一組標籤,例如AccountIdBusinessUnit

在下圖中,資源 1 具有唯一的AccountIdBusinessUnit標籤集,並以單一項目的形式顯示在「計量記錄」中。

資源 2資源 3 都有相同的AccountId標籤2222,以及相同的BusinessUnit標籤Operations。因此,它們會合併為「測光記錄」中的單一UsageAllocations項目。

賣方還可以將沒有標籤的資源合併為UsageAllocation具有分配使用量的單個資源,並將其作為中的條目之一發送UsageAllocations

限制包括:

  • 標籤數量 — 5

  • UsageAllocations(基數)的大小 — 2,500

驗證包括:

  • 標籤鍵和值的允許的字元 — zA-ZA-ZA-ZA-ZA-Z-ZA-ZA-ZA-ZA-ZA-Z 。 _:\ /@

  • 列表中的標籤UsageAllocation數量上限 — 5

  • 兩個不UsageAllocations能有相同的標籤(也就是標籤鍵和值的相同組合)。如果是這種情況,他們必須使用相同的UsageAllocation

  • AllocatedUsageQuantity總和UsageAllocation必須等於UsageQuantity,也就是彙總用法。

買家體驗

下表顯示買家啟動AccountIdBusinessUnit廠商標籤後的買家體驗範例。

在此範例中,購買者可以在其「成本使用報表」中查看已配置的使用量。供應商計量標籤使用前置詞“aws:marketplace:isv”。購買者可以在「Billing and Cost Management 系統」中的「成本分配標籤」下的「AWS產生的成本分配標籤」中啟用它們

成本使用報告的第一列和最後一列與賣方傳送至計量服務的資料相關 (如賣家體驗範例所示)。

成本使用報表 (簡化)
ProductCode 買家 UsageDimension UsageQuantity aws:marketplace:isv:AccountId aws:marketplace:isv:BusinessUnit
XYZ 111122223333 網路:檢查的每 (GB) 70 2222 操作
XYZ 111122223333 網路:檢查的每 (GB) 30 3333 財務
XYZ 111122223333 網路:檢查的每 (GB) 20 4444
XYZ 111122223333 網路:檢查的每 (GB) 20 5555 行銷部門
XYZ 111122223333 網路:檢查的每 (GB) 30 1111 行銷部門

如需程式碼範例,請參閱「MeterUsage含使用量分配標記的程式碼範例 (選用)」。

程式碼範例

下列程式碼範例可協助您整合容器產品與發佈和維護產品所需的AWS Marketplace API。

MeterUsage含使用量分配標記的程式碼範例 (選用)

下列程式碼範例適用於具有消費定價模式的容器產品。Python 範例會傳送含有適當使用量分配標籤的計量記錄,AWS Marketplace以向您的客戶收取 pay-as-you-go 費用。

# NOTE: Your application will need to aggregate usage for the # customer for the hour and set the quantity as seen below. # AWS Marketplace can only accept records for up to an hour in the past. # # productCode is supplied after the AWS Marketplace Ops team has # published the product to limited # Import AWS Python SDK import boto3 import time usageRecord = [ { "AllocatedUsageQuantity": 2, "Tags": [ { "Key": "BusinessUnit", "Value": "IT" }, { "Key": "AccountId", "Value": "123456789" }, ] }, { "AllocatedUsageQuantity": 1, "Tags": [ { "Key": "BusinessUnit", "Value": "Finance" }, { "Key": "AccountId", "Value": "987654321" }, ] } ] marketplaceClient = boto3.client("meteringmarketplace") response = marketplaceClient.meter_usage( ProductCode="testProduct", Timestamp=int(time.time()), UsageDimension="Dimension1", UsageQuantity=3, DryRun=False, UsageAllocations=usageRecord )

如需有關的詳細資訊MeterUsage,請MeterUsage參閱 AWS Marketplace Metering ServiceAPI 參考中的。

回應範例

{ "MeteringRecordId": "string" }