

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

# 使用 AWS Marketplace Metering Service 自訂 AMI 產品的計量定價
<a name="custom-metering-pricing-ami-products"></a>

使用 AWS Marketplace Metering Service，您可以修改軟體，將計量記錄傳送至端點以擷取用量。您可以選取用量類別，並為該類別定義最多 24 個維度。這些維度每小時計量一次、彙總，並根據您定義的價格計劃收費。身為賣方，您必須決定要使用的維度。發佈 AMI 之後，您將無法變更它。下列各節提供 AWS Marketplace Metering Service 的相關資訊。

**Topics**
+ [計量服務概念](#metering-service-concepts)
+ [為您的軟體定價](#pricing-your-software)
+ [將您的產品新增至 AWS Marketplace](#listing-your-product-on-aws-marketplace)
+ [修改您的軟體以使用 Metering Service](#modifying-your-software-to-use-the-metering-service)
+ [廠商計量標記 （選用）](#ami-vendor-metered-tagging)
+ [設定自訂計量](#configure-custom-metering)
+ [使用 設定 AMI 產品的自訂計量 AWS Marketplace Metering Service](custom-metering-with-mp-metering-service.md)

## 計量服務概念
<a name="metering-service-concepts"></a>

在使用 AWS Marketplace Metering Service 之前，請注意下列重要的服務概念：
+  **用量類別** – 透過使用 Metering Service 定價的任何軟體產品都會根據一個用量類別進行分類，這會決定向客戶收費的適當方式。用量類別包括但不限於：
  + **使用者** – 與單一識別符相關聯的一組已定義許可。此類別適用於客戶使用者直接連線至軟體的軟體 （例如，用於客戶關係管理或商業智慧報告）。
  + **主機** – 運算系統的任何伺服器、節點、執行個體、端點或其他部分。此類別適用於監控或掃描許多客戶擁有的執行個體 （例如效能或安全監控） 的軟體。
  + **資料** – 以 MB、GB 或 TB 為單位的儲存或資訊。此類別適用於管理預存資料或批次處理資料的軟體。
  + **頻寬** – 以 Mbps 或 Gbps 為單位測量。此類別適用於允許客戶指定要佈建頻寬量的軟體。
  + **單位** – 度量單位；請參閱接下來所述的範例。
+  **用量單位** – 軟體產品的特定用量單位對應於選取的用量類別。此用量單位說明您的軟體將向其收費的單位。範例包括：
  + **NodesHrs** （對應至主機類別）
  + **UserHrs** （對應至使用者類別）
  + **GBStored** （對應至 Data 類別）
+  **使用** – 透過使用計量服務費用以三種方式之一來使用的軟體產品定價：
  + 佈建 – 軟體可讓客戶設定特定數量的資源以供使用 （例如，使用者數量或固定頻寬數量）。客戶每小時會支付他們佈建的內容。
  + 並行 – 軟體允許任意數量的不同主機或使用者連線到軟體。客戶每小時都會根據存取軟體的主機或使用者數量付費。
  + 累積 – 軟體可讓客戶使用任何處理或儲存的資料量。客戶每小時會支付彙總金額。
+  **定價** – 透過使用 Metering Service 定價的軟體產品必須指定單一價格或定義最多 24 個維度，每個維度都有自己的價格。定價選項的詳細資訊包括：
  + 單一維度 – 這是最簡單的定價選項。無論大小或數量為何 （例如，每位使用者每小時 0.014 美元或每部主機每小時 0.070 美元），客戶都會按每小時資源單位支付單一價格。
  + 多個維度 – 當選取的用量類別沿著多個軸變化時，此定價選項是適當的。例如，對於主機監控，可以根據主機的大小設定不同的價格。或者，對於以使用者為基礎的定價，可以根據使用者類型 （例如，管理員、進階使用者和唯讀使用者） 設定不同的價格。
+  **計量** – 所有用量都會記錄為計量事件，每小時一次。您的軟體必須設定為將適當的維度和用量傳送至 AWS Marketplace Metering Service。
  + 配置 – 或者，您可以依追蹤的屬性，將用量分配到配置中。這些配置會以標籤表示給買方。這些標籤可讓買方依標籤檢視其成本分割為用量。例如，如果您由使用者收費，且使用者具有「部門」屬性，則可以使用索引鍵為「部門」的標籤建立用量配置，每個值一個配置。此方法不會變更您報告的價格、維度或總用量。不過，它可讓您的客戶依適合您產品的類別檢視其成本。

## 為您的軟體定價
<a name="pricing-your-software"></a>

使用 AWS Marketplace Metering Service 為您的軟體定價時，您必須先決定用量類別及其使用方式。服務支援六個不同的定價案例。您只能為您的產品選取下列其中一項：
+ 佈建的使用者 （每小時） 
+ 並行使用者 （每小時） 
+ 佈建主機 （每小時） 
+ 並行主機 （每小時） 
+ 佈建頻寬 （每小時） 
+ 累積資料 （每小時） 

接著，您必須決定如何為選取的用量類別定價：
+ 單一價格 
+ 多個維度 （最多 24 個） 

[將您的產品新增至 AWS Marketplace](#listing-your-product-on-aws-marketplace) 說明如何提供維度和定價的客戶友好描述。

### 範例：具有非線性定價的佈建頻寬
<a name="example-provisioned-bandwidth-with-non-linear-pricing"></a>

假設您提供網路設備軟體。您可以選擇依佈建頻寬計費。針對您的用量類別，選取**頻寬**。除了透過頻寬收費，您希望隨著買方擴展而收取不同的價格。您可以在頻寬類別中定義多個維度。您可以為 25 Mbps、100 Mbps 和 1 Gbps 定義不同的價格。

### 範例：具有多個維度的並行主機
<a name="example-concurrent-hosts-with-multiple-dimensions"></a>

假設您提供軟體來監控其他 Amazon EC2 執行個體。您可以選擇依受監控的主機數量計費。針對您的用量類別，選取**主機**。除了透過主機收費之外，您希望收取監控大型主機的額外值費用。您可以在主機類別中使用多個維度。您可以為微型、小型、中型、大型、x 大型、2XL, 4XL和 8XL 執行個體定義不同的價格。您的軟體負責將每個特定主機映射到您定義的其中一個維度。如適用，您的軟體會負責針對用量類別的每個維度傳送個別的計量記錄。

## 將您的產品新增至 AWS Marketplace
<a name="listing-your-product-on-aws-marketplace"></a>

若要利用 Metering Service，您必須為 建立新的產品 AWS Marketplace 以列出。如果您的產品已在 上 AWS Marketplace，您將需要決定是否除了目前的產品之外，還會提供新的 AWS Marketplace Metering Service 產品，或者是否會將目前的產品取代為可供新使用者使用的唯一版本。如果您選擇替換，現有的產品將從 中移除， AWS Marketplace 因此不再可供新買方使用。現有客戶將繼續存取其舊產品和執行個體，但他們可以在方便的時候遷移到新產品。新產品必須測量 AWS Marketplace Metering Service 的用量，如中所述[修改您的軟體以使用 Metering Service](#modifying-your-software-to-use-the-metering-service)。

在您擁有 AMI 之後，請遵循標準程序，使用自助式工具來共用和掃描 AMI。除了使用 管理入口網站上提供的範本之外，請填寫產品載入表單並上傳以開始擷取程序。

使用下列定義來完成 AWS Marketplace Metering Service 的產品載入表單欄位。在產品載入表單上，這些欄位會標記為**彈性消費定價 (FCP)**，以區分它們與每小時和每月定價產品。
+  **標題**：如果您已在 上擁有產品， AWS Marketplace 且您要使用 新增相同的產品 AWS Marketplace Metering Service，請在括號中包含 FCP 類別和維度以區分它們 （例如「產品標題 （資料）」)。
+  **定價模型** – 從下拉式清單中，選擇**用量**。
+  **FCP 類別** – 向客戶收取使用量****定價元件付費產品的類別。從下拉式清單中，選擇**使用者**、**主機**、**資料**或**頻寬**。
+  **FCP 單位** – 衡量單位，針對使用**量**定價元件的付費產品向客戶收費。選項會根據您選取的 FCP 類別顯示在下拉式清單中。下表列出每個類別的有效單位。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/marketplace/latest/userguide/custom-metering-pricing-ami-products.html)
+  **FCP 維度名稱** – 透過呼叫 `MeterUsage`操作傳送計量記錄時使用的名稱。它會顯示在帳單報告中。不過，因為它不是面向外部的，因此名稱不需要易於使用。名稱不可超過 15 個字元，且只能包含英數字元和底線字元。在您設定名稱並公開產品之後，就無法變更它。變更名稱需要新的 AMI。
+  **FCP 維度描述** – 面向客戶的陳述式，描述產品的維度。描述 （不可超過 70 個字元，且應易於使用。描述的範例包括：每小時的管理員和佈建的每 Mbps 頻寬。發佈產品後，您無法變更此描述。
+  **FCP 費率** – 此產品的每單位軟體費用。此欄位支援八個小數位數。

**備註：**  
您不需要填寫每小時和每年定價欄位。
免費試用和年度定價不相容。
使用 AMI 以及叢集 AWS 和資源功能的產品無法使用 AWS Marketplace Metering Service。
價格、執行個體類型或 AWS 區域 變更將遵循與其他 AWS Marketplace 產品相同的程序。
具有 AWS Marketplace Metering Service 的產品無法轉換為其他定價模式，例如每小時、每月或自攜授權 (BYOL)。
AWS Marketplace 建議在使用說明或文件中新增 IAM 政策資訊。
您總共可以包含最多 24 個 FCP 維度。建立並發佈後，您無法修改現有的維度，但可以新增新維度 （上限為 24)。

如果您有任何問題，請聯絡[AWS Marketplace 賣方營運](https://aws.amazon.com/marketplace/management/contact-us/)團隊。

## 修改您的軟體以使用 Metering Service
<a name="modifying-your-software-to-use-the-metering-service"></a>

您需要修改軟體以記錄客戶用量、將每小時用量報告傳送至計量服務，以及處理新的故障模式。軟體的運作與定價無關，但軟體需要了解用量類別、使用方式和任何維度。

### 測量耗用量
<a name="measuring-consumption"></a>

您的軟體必須判斷所選用量類別的數量，以及客戶已使用的維度。此值每小時會傳送給計量服務一次。在所有情況下，都假設您的軟體能夠測量、記錄和讀取資源的耗用量，以便每小時將其傳送至計量服務。

對於佈建的耗用量，這通常是從軟體組態讀取為取樣值，但也可能是每小時記錄的最大設定值。對於並行耗用，這可能是週期性範例或每小時記錄的最大值。對於累積使用量，這會是每小時累積的值。

對於多個維度的定價，必須測量多個值並傳送至計量服務，每個維度一個。當您提供 AMI 時，這需要您的軟體使用已知的一組維度進行程式設計或設定。建立產品後，維度集無法變更。

對於每個定價案例，下表說明每小時測量耗用量的建議方法。


|  **案例 **  |  **如何測量 **  | 
| --- | --- | 
|  佈建的使用者   |  佈建使用者的目前數量 （取樣）。 -或-  佈建使用者數目上限 （查看該小時）。  | 
|  並行使用者   |  目前並行使用者數量 （取樣）。 -或-  並行使用者數目上限 （查看該小時）。 -或-  不同使用者總數 （查看該小時）。  | 
|  佈建的主機   |  佈建主機的目前數量 （取樣）。 -或-  佈建主機的數量上限 （查看該小時）。  | 
|  並行主機   |  並行主機的目前數量 （取樣）。 -或-  並行主機數量上限 （查看該小時）。 -或-  不同主機的總數 （查看該小時）。  | 
|  佈建頻寬   |  目前佈建的頻寬設定 （取樣）。 -或-  佈建頻寬上限 （查看該小時）。  | 
|  累積資料   |  目前 GB 的資料已儲存 （取樣）。 -或-  儲存的最大 GB 資料 （查看該小時）。 -或-  該小時新增或處理的資料總 GB。 -或-  該小時處理的資料總 GB。  | 

## 廠商計量標記 （選用）
<a name="ami-vendor-metered-tagging"></a>

廠商計量標記可協助獨立軟體廠商 (ISVs) 為買方提供更精細的軟體用量洞察，並協助他們執行成本分配。

若要標記買方的軟體用量，您需要判斷如何分配成本。首先詢問您的買方，他們想要在成本分配中看到什麼。然後，您可以將用量分割到您追蹤買方帳戶的屬性。屬性的範例包括 `Account ID`、`Cost Centers`、 `Business Unit`和您產品的其他相關中繼資料。這些屬性會以標籤的形式公開給買方。使用標籤，買方可以在帳單 AWS 主控台 ([https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/)：//) 中檢視依標籤值分割為用量的成本。廠商計量標記不會變更您報告的價格、維度或總用量。它可讓您的客戶依適合您產品的類別檢視其成本。

在常見的使用案例中，買方使用 訂閱您的產品 AWS 帳戶。買方也有許多與相同產品訂閱相關聯的使用者。您可以使用索引鍵為 的標籤建立用量配置`Account ID`，然後將用量配置給每個使用者。在此情況下，買方可以在帳單和成本管理主控台中啟用`Account ID`標籤，並分析個別使用者用量。

### 賣方體驗
<a name="ami-vendor-metered-tag-seller"></a>

賣方可以使用相同的標籤集彙總資源的計量記錄，而不是彙總所有資源的用量。例如，賣方可以建構包含不同 儲存貯體的計量記錄`UsageAllocations`。每個儲存貯`UsageQuantity`體代表一組標籤，例如 `AccountId`和 `BusinessUnit`。

在下圖中，**資源 1** 具有一組唯一的 `AccountId` 和 `BusinessUnit`標籤，並在**計量記錄中**顯示為單一項目。

**資源 2** 和**資源 3** 都有相同的`AccountId`標籤 `2222`和相同的`BusinessUnit`標籤 `Operations`。因此，它們會合併為**計量記錄中**的單一`UsageAllocations`項目。

![\[顯示廠商計量標籤如何結合用量資料的圖表。具有不同 AccountIds和 BusinessUnits 的三個資源 （資源 1、2 和 3) 會合併為單一計量記錄，並依 AccountId 和 BusinessUnit 分組 UsageAllocations，再傳送至 AWS Marketplace Metering Service。\]](http://docs.aws.amazon.com/zh_tw/marketplace/latest/userguide/images/seller-vendor-meter-tag.png)


賣方也可以將沒有標籤的資源合併為`UsageAllocation`具有配置用量數量的單一資源，並將其做為 中的其中一個項目傳送`UsageAllocations`。

限制包括：
+ 標籤數量 – 5
+ 大小 `UsageAllocations`（基數） – 2，500

驗證包括：
+ 標籤索引鍵和值允許的字元 – a-zA-Z0-9\$1 -=.\$1：\$1/@
+ 跨`UsageAllocation`清單的標籤上限 – 5
+ 兩個 `UsageAllocations` 不能有相同的標籤 （也就是標籤索引鍵和值的相同組合）。如果是這種情況，他們必須使用相同的 `UsageAllocation`。
+ `AllocatedUsageQuantity` 的 總和`UsageAllocation`必須等於 `UsageQuantity`，即彙總用量。

### 買方體驗
<a name="ami-vendor-metered-tag-buyer"></a>

下表顯示買方啟用 `AccountId`和`BusinessUnit`廠商標籤後買方體驗的範例。

在此範例中，買方可以在**成本用量報告中看到配置的用量**。廠商計量的標籤使用字首 `“aws:marketplace:isv”`。買方可以在帳單和成本管理、**成本分配標籤**、 **AWS產生的成本分配標籤**下啟用它們。

**成本用量報告**的第一列和最後一列與賣方傳送到計量服務的內容相關 （如[賣方體驗](container-metering-meterusage.md#container-vendor-metered-tag-seller)範例所示）。


**成本用量報告 （簡化）**  

| 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 | IT | 
| xyz | 111122223333 | 網路：每個 (GB) 已檢查  | 20 | 5555 | Marketing | 
| xyz | 111122223333 | 網路：每個 (GB) 已檢查  | 30 | 1111 | Marketing | 

如需程式碼範例，請參閱 [`MeterUsage` 使用用量分配標記 （選用）](custom-metering-with-mp-metering-service.md#ami-meterusage-code-example)

## 設定自訂計量
<a name="configure-custom-metering"></a>

如需使用 AWS Marketplace Metering Service 的詳細資訊，請參閱 [使用 設定 AMI 產品的自訂計量 AWS Marketplace Metering Service](custom-metering-with-mp-metering-service.md)。

# 使用 設定 AMI 產品的自訂計量 AWS Marketplace Metering Service
<a name="custom-metering-with-mp-metering-service"></a>

**注意**  
對於具有自訂計量定價的 AMI 型產品，您的軟體必須使用連接至 Amazon EC2 執行個體之 Amazon Elastic Compute Cloud 的 IAM 角色臨時 AWS 憑證來呼叫 [MeterUsage API](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_MeterUsage.html)。不支援使用長期存取金鑰。

AWS Marketplace Metering Service 是一項定價和計量功能，可用來依用量類別直接收取軟體費用。有五種用量類別：使用者、資料、頻寬、主機或單位。您可以使用 Metering Service 搭配 Amazon Machine Image (AMI) 型、容器型和軟體即服務 (SaaS) 型產品。下列各節提供如何使用 AWS Marketplace Metering Service 設定自訂計量的詳細資訊。

AWS Marketplace Metering Service 可啟用數個新案例。例如，如果您的軟體監控主機，您可以針對每個受監控的主機收取費用。您可以根據主機大小有不同的價格，並按每小時監控的並行主機數量收費。同樣地，如果您的軟體允許組織中的許多使用者登入，您可以按使用者數量收費。每小時會向客戶收取佈建使用者總數的費用。

如需詳細資訊，請參閱 [https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/Welcome.html)。

如需整合 AWS Marketplace Metering Service API for AMI 型產品與自訂計量定價的詳細資訊，請參閱*AWS Marketplace 賣方研討會*[自訂單位實驗室定價的列出 AMI 產品](https://catalog.workshops.aws/mpseller/en-US/ami/list-ami-custom-units)。

**Topics**
+ [要求](#metering-service-requirements)
+ [呼叫 AWS Marketplace Metering Service](#call-aws-marketplace-metering-service)
+ [失敗處理](#important-information-about-failure-handling)
+ [限制](#limitations)
+ [程式碼範例](#ami-metering-code-example)

## 要求
<a name="metering-service-requirements"></a>

所有使用 Metering Service 的 AMI 型軟體都必須符合下列要求：
+ 您的軟體必須透過 AWS Marketplace Amazon Machine Image (AMI) 從 啟動。
+ 如果您在 中有現有產品 AWS Marketplace，則必須提交新的 AMI 並建立新的產品以啟用此功能。
+ 所有軟體都必須使用 AWS Identity and Access Management (IAM) 角色佈建。最終客戶必須將 IAM 角色新增至使用者使用 軟體佈建的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。當您透過 部署軟體時，可選擇是否使用 IAM 角色 AWS Marketplace。部署 AWS Marketplace Metering Service 軟體時，這是必要的。
+ 您的軟體必須能夠以某種方式判斷使用量。

## 呼叫 AWS Marketplace Metering Service
<a name="call-aws-marketplace-metering-service"></a>

 您的軟體必須每小時呼叫 Metering Service，並記錄該小時的耗用量值。

 當軟體啟動時，它應該記錄其啟動minute-of-the-hour。這稱為*開始分鐘*。開始分鐘的每個小時，您的軟體都必須判斷該小時的耗用量值，並呼叫計量服務。如需如何取得此值的資訊，請參閱[修改您的軟體以使用計量服務](https://docs.aws.amazon.com/marketplace/latest/userguide/custom-metering-pricing-ami-products.html#modifying-your-software-to-use-the-metering-service)。

 若要在啟動分鐘每小時喚醒，您的軟體必須使用下列其中一種方法：
+  軟體中的執行緒。
+  以執行個體或軟體啟動的協助程式程序。
+  應用程式啟動期間設定的 Cron 任務。
**注意**  
 您的軟體必須使用客戶執行個體上設定的 IAM 角色呼叫 AWS Marketplace Metering Service，並指定耗用量維度和數量。

您的軟體可以使用軟體 AWS 開發套件來呼叫 AWS Marketplace Metering Service，類似於下列範例實作：

1. 使用執行個體描述檔來建立服務用戶端。這需要為 EC2 執行個體設定的角色。SDK 會自動重新整理角色登入資料。

1. 每小時讀取您的軟體組態和狀態，以判斷該小時的耗用值。這可能包括收集value-per-dimension。

1. 使用下列參數在 SDK 用戶端上呼叫 `meterUsage`方法 （針對具有 用量的每個維度另外呼叫 )：
   + `timestamp` – 記錄小時的時間戳記 (UTC)。
   + `productCode` – 指派給軟體的產品程式碼。
   + `dimension` – 指派給軟體的維度 （或維度）。
   + `quantity` – 小時的耗用值。
   + `allocations` – （選用） 您可以跨追蹤的屬性提供用量的配置。這些配置必須加總至記錄中的總耗用量。對於買方，這些會在其帳單工具 （例如 AWS 帳單與成本管理 主控台） 中顯示為潛在的成本分配標籤。買方必須在其帳戶中啟用標籤，才能使用這些標籤追蹤其成本。

此外，您的軟體必須呼叫區域內 AWS Marketplace Metering Service 端點。您的產品必須設定正確的區域端點，因此 `us-east-1` 會將記錄傳送至`us-east-1`端點，並將記錄`us-west-2`傳送至`us-west-2`端點。進行區域內呼叫可為買方提供更穩定的體驗，並防止不相關的區域可用性可能影響另一個區域中執行的軟體的情況。

當您將計量記錄傳送至 服務時，您必須連線到您所在區域的 AWS Marketplace Metering Service。使用 `getCurrentRegion()` 協助程式方法來判斷 EC2 `MeteringServiceClient` 執行個體執行所在的區域，然後將此區域資訊傳遞給建構函式。如果您未在 SDK 建構函數 AWS 區域 中指定 ，則會使用預設`us-east-1`區域。如果您的應用程式嘗試對服務進行跨區域呼叫，則會拒絕呼叫。如需詳細資訊，請參閱[判斷應用程式的目前區域](https://java.awsblog.com/post/Tx3GBOIEN1JJMQ5/Determining-an-Application-s-Current-Region)和 [getCurrentRegion()](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/regions/Regions.html#getCurrentRegion())。

## 失敗處理
<a name="important-information-about-failure-handling"></a>

您的產品必須將計量記錄傳送至公有網際網路端點服務，以便擷取用量並進行計費。由於客戶可以修改網路設定，以防止您的計量記錄交付，因此您的產品應該透過選擇失敗模式來考慮這一點。

**注意**  
某些計量失敗可能是連線至 時的暫時性問題 AWS Marketplace Metering Service。 AWS Marketplace 強烈建議在指數退避的情況下實作重試最多 30 分鐘，以避免短期中斷或網路問題。

一般而言，軟體可能會開啟失敗 （提供警告訊息但維持完整功能） 或關閉失敗 （停用應用程式中的所有功能，直到重新建立連線為止）。您可以選擇失敗開啟、關閉或特定於您的應用程式。強烈建議您避免在不到兩小時的計量失敗後關閉。

作為部分開啟失敗的範例，您可以繼續允許存取軟體，但不允許買方修改軟體設定。或者，買方仍然可以存取軟體，但無法建立其他使用者。您的軟體負責定義和強制執行此失敗模式。提交 AMI 時，必須包含您軟體的失敗模式，之後無法變更。

## 限制
<a name="limitations"></a>

 在設計和提交啟用 Metering Service 的軟體時，請記住這些限制：
+ **您客戶的 IAM 角色和網際網路閘道需求** – 您的客戶必須擁有網際網路閘道，而且必須使用具有特定許可的 IAM 角色來啟動您的軟體。如需詳細資訊，請參閱[AWS Marketplace 計量和權利 API 許可](iam-user-policy-for-aws-marketplace-actions.md)。如果不符合這兩個條件，您的軟體就無法連線至 Metering Service。
+  **無法將新的或變更用量類別新增至現有的 Metering Service 產品** – 當客戶訂閱您的軟體產品時，他們同意條款與條件。使用 Metering Service 變更產品中的用量類別需要新的產品和新的訂閱。
+ **無法將維度變更為現有 Metering Service 產品** – 當客戶訂閱您的軟體產品時，他們同意條款與條件。使用 Metering Service 變更產品中的維度需要新的產品和新的訂閱。*您可以將*新維度新增至現有產品，上限為 24。
+  **缺少免費試用和年度訂閱** – Metering Service 產品不支援啟動時的免費試用和年度訂閱。
+  **多執行個體或叢集型部署考量** – 有些軟體會部署為多執行個體部署的一部分。當您設計軟體時，請考慮如何測量耗用量以及在何處發出計量記錄。

## 程式碼範例
<a name="ami-metering-code-example"></a>

以下程式碼範例可協助您整合 AMI 產品與發佈和維護產品所需的 AWS Marketplace APIs。

### `MeterUsage` 使用用量分配標記 （選用）
<a name="ami-meterusage-code-example"></a>

下列程式碼範例適用於使用定價模型的 AMI 產品。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`，請參閱《計量服務 API 參考》中的 [MeterUsage](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html)。 *AWS Marketplace *

### 回應範例
<a name="ami-meterusage-code-response"></a>

```
{ "MeteringRecordId": "string" }
```