

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

# 使用 SaaS 訂閱設定用量計量
<a name="metering-for-usage"></a>

對於軟體即服務 (SaaS) 訂閱，您可以計量所有用量，然後 AWS 根據您提供的計量記錄向客戶計費。對於 SaaS 合約，您只能測量超出客戶合約權利的用量。下列各節提供如何設定 SaaS 產品用量計量的相關資訊。

當您的應用程式測量客戶的用量時，您的應用程式會提供累積的用量 AWS 數量。您的應用程式會測量您在建立產品時定義的定價維度，例如傳輸的 GB 或指定小時內掃描的主機。例如，如果您根據傳送至應用程式的資料量收費，您可以測量資料量，每小時傳送一次對應的計量記錄。 會使用計量資料以及您在建立產品時提供的價格來 AWS 計算客戶的帳單。

對於支援並行協議的產品，計量會在授權層級操作，而不是在產品層級操作。每個用量記錄都必須包含 `LicenseArn`，以識別適用用量的特定協議。`LicenseArn` 是在 SaaS 註冊期間從 `ResolveCustomer` API 回應取得。這可讓買方維護相同產品的多個作用中協議，並根據協議分別追蹤用量並計費。

**注意**  
或者，您可以將用量分割為您追蹤的屬性。這些屬性會以標籤的形式公開給買方。這些標籤可讓買方檢視依標籤值分割為用量的成本。例如，如果您由 使用者收費，且使用者具有 `Department` 屬性，則可以使用索引鍵為 的標籤建立用量配置`Department`，每個值一個配置。這不會變更您報告的價格、維度或總用量，但可讓您的客戶依適合您產品的類別檢視其成本。如需詳細資訊，請參閱[廠商計量標記 （選用）](#saas-vendor-metered-tagging)。

**Topics**
+ [每小時計量](#metering-hourly)
+ [設定您的產品以計量用量](#configure-application-for-meter-usage)
+ [廠商計量標記 （選用）](#saas-vendor-metered-tagging)

## 每小時計量
<a name="metering-hourly"></a>

建議您 AWS 每小時向 報告所有客戶的用量，一次批次最多 25 個。這可讓客戶盡可能精細地了解其用量和成本。如果您在超過一小時的時段 （例如一天） 彙總用量，請注意下列考量。
+ AWS 只有在收到來自您的計量記錄時， 才能向客戶收取產品用量的費用。您有責任確保您產品的計量記錄已成功傳輸和接收。您可以使用 AWS CloudTrail 來驗證您傳送的記錄是否正確。您也可以使用資訊在一段時間內執行稽核。如需詳細資訊，請參閱[使用 記錄 AWS Marketplace API 呼叫 AWS CloudTrail](cloudtrail-logging.md)。
+ 如果這是具有定價模式 "Subscription" （非定價模式 "Contract" 或 "Contract with Consumption") 的 SaaS，則買方可以隨時取消訂閱。當買方啟動此取消訂閱動作時，賣方會收到`unsubscribe-pending`[通知](saas-notification.md#saas-sns-subscription-message-body)，並有 1 小時的時間在最終`unsubscribe-success`通知之前傳送所有未報告的用量。第二次通知之後的任何內容都不會被接受。其他兩個定價模型具有根據訂閱時間設定的持續時間，買方無法在訂閱期間取消訂閱。它們只能關閉自動續約。如果未自動續約，則會在該持續時間結束時傳送相同的通知。
+ 對於具有並行協議的產品：取消訂閱通知和 1 小時時段適用於每個個別協議，而非每個產品。如果買方取消多個作用中協議的其中之一，您可以繼續根據剩餘的作用中授權計量。只有在收到該特定授權的`unsubscribe-pending`通知後 1 小時內，才能提交取消協議的用量。
+ 如果您未每小時傳送計量記錄，且發生應用程式或網路中斷，您的記錄將會進一步落後。如果在訂閱過期後還原應用程式或網路中斷，這可能會導致未報告的用量。
+ 即使沒有要報告的用量，您也可以繼續每小時傳送計量記錄，如果該小時沒有要報告的用量，則記錄 0 的數量。請注意，在您報告買方的維度用量為 0 或以上後，您就無法修改記錄。因此，最佳實務是報告前一小時的用量。在整個計費週期中，買方的 [AWS Billing and Cost Management](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html) 主控台中會顯示回報的使用量。主控台會在個別明細項目中顯示產品的每個維度，其中包含使用的總單位數，以及該明細項目在該帳單週期內或到目前為止使用的總成本，即使維度價格為每單位 0 美元。如果啟用，[AWS 成本和用量報告 (CUR)](https://docs.aws.amazon.com/cur/latest/userguide/what-is-data-exports.html) 會顯示此詳細資訊，包括每單位費率。這些報告不會即時更新。
+ 在發佈期間， AWS Marketplace 操作團隊會先測試 SaaS 應用程式是否成功傳送計量記錄，再允許產品發佈。一般而言，團隊會執行 SaaS 的模擬註冊，並確認收到計量記錄。

**注意**  
如果您的 SaaS 產品與其他以不同方式 （例如 Amazon SageMaker Ground Truth 或 AWS WAF) 處理計量的 AWS 受管服務整合，則您不需要與 AWS Marketplace 計量服務整合。您產品的計量應該只發生在一個系統中，以避免重複向您的客戶收費。請注意， 目前 AWS Marketplace 不會發佈 AWS WAF 新產品。

## 設定您的產品以計量用量
<a name="configure-application-for-meter-usage"></a>

 您可以使用 AWS Marketplace Metering Service 中的 `BatchMeterUsage`操作來交付計量記錄 AWS。請謹記以下幾點：
+  我們要求賣方使用 `BatchMeterUsage`操作來使用批次處理。
+  我們刪除該小時的重複計量請求。
  + 對於非並行協議產品：請求會依product/customer/hour/維度重複刪除。對於並行協議產品：請求會根據license/customer/hour/維度進行重複刪除。
  + 您可以隨時重試任何請求，但如果計量不同的數量，則會對原始數量收費。對於並行協議產品：使用相同的 重試`LicenseArn`是安全的，並遵循標準重複資料刪除規則。不過，在相同使用時段`LicenseArn`的 `ProductCode` 和 之間切換會導致重複計費。
  +  如果您為相同的customer/dimension/hour傳送多個請求，則不會彙總記錄。
+ 如果客戶訂閱您的產品，賣方可以傳送時間戳記最長為過去 6 小時的計量記錄。如果客戶取消訂閱，賣方必須在客戶取消訂閱後的 1 小時內傳送計量記錄。
+ `BatchMeterUsage` 承載不得超過 1MB。選擇要在`BatchMeterUsage`請求中傳送的用量記錄數量，以免超過承載的大小。
+  AWS Marketplace Metering Service 可在 *AWS 一般參考*中[AWS Marketplace 端點和配額](https://docs.aws.amazon.com/general/latest/gr/aws-marketplace.html)中 AWS 區域 列出的 中使用。根據預設，當您請求產品時，SaaS 計量產品會啟用美國東部 （維吉尼亞北部） 區域。如果您想要使用其他區域，請聯絡[https://aws.amazon.com/marketplace/management/contact-us/](https://aws.amazon.com/marketplace/management/contact-us/)團隊。如需詳細資訊，請參閱 [BatchMeterUsage](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_BatchMeterUsage.html)。
+ 並行協議：單一客戶可能有多個適用於您產品的作用中協議。每個協議都有唯一的 `LicenseArn`，每個授權會分別追蹤用量。[在此處](https://catalog.workshops.aws/mpseller/en-US/saas/integration-for-concurrent-agreements)檢閱並行協議的新整合。對於新的實作，每個 `UsageRecord`必須包含 `LicenseArn` 欄位，以識別套用用量的協議。從 `ResolveCustomer` API 回應`LicenseArn`取得 。

**注意**  
對於現有的實作：當您從產品型計量遷移到授權型計量時，請勿在同一小時內`ProductCode`為相同客戶同時傳送 `LicenseArn`和 的計量記錄。這會導致重複計費。請勿在請求層級包含 `ProductCode` 。每個 `LicenseArn`中的 會同時`UsageRecord`識別產品和特定協議。

如需程式碼範例，請參閱 [SaaS 產品整合的程式碼範例](saas-code-examples.md)。

### 範例：主機掃描
<a name="host-scanning-example"></a>

 您的產品會分析運算硬體是否有已知的安全漏洞。客戶手動啟動或排程 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的這些掃描。當您的產品執行這些掃描時，它會高載每小時掃描的唯一主機數量。在此範例中，您的產品使用 **Hosts** 類別。您可以為掃描的主機類型宣告多個維度。例如，您可以針對小型、中型和大型主機收取不同的價格。

### 範例：日誌分析
<a name="log-analysis-example"></a>

 您的 SaaS 產品會摘要客戶產品、報告趨勢和異常所產生的日誌。當客戶將日誌上傳至您的產品時，您可以測量以 MB、GB 或 TB 為單位接收的資料數量。在每小時的第十分鐘，cron 任務會讀取前一小時每位客戶的此用量。任務會建置批次報告，並使用 `BatchMeterUsage`操作將其傳送至其中 AWS。在此範例中，您的產品使用 **資料**類別。您的產品也可以計量任何指定小時內存放的日誌資料量。在這種情況下，您的產品可以沿著兩個維度計量：每小時接收的資料和每小時存放的總資料。您可以繼續計量儲存的資料，直到客戶刪除此資料或資料過期為止。

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

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

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

**注意**  
供應商計量標記 (VMT) 產品目前不支援並行協議授權層級計量。如果您的產品使用 VMT，請繼續使用標準 `ProductCode`型計量。

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

### 賣方體驗
<a name="saas-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
+ 請求大小上限 – 1 MB 

驗證包括：
+ 標籤索引鍵和值允許的字元 – a-zA-Z0-9\+ -=.\_：\\/@
+ 跨`UsageAllocation`清單的標籤上限 – 5
+ 兩個 `UsageAllocations` 不能有相同的標籤 （也就是標籤索引鍵和值的相同組合）。如果是這種情況，他們必須使用相同的 `UsageAllocation`。
+ `AllocatedUsageQuantity` 的 總和`UsageAllocation`必須等於 `UsageQuantity`，即彙總用量。
+ 承載大小上限不能超過 1 MB。這包括輸入屬性索引鍵 （例如，、`UsageRecords``AllocatedUsageQuantity`、標籤）。
**注意**  
為了確保您沒有違反承載限制，請根據業務需求建立大小上限的範例請求物件，將物件轉換為 JSON 字串，並取得以位元組為單位的大小。請確定單一 API 呼叫不會超過 1 MB 的限制。例如，如果具有 1 的請求的大小`UsageRecord`上限為 200 KB，請勿`UsageRecords`在請求中傳送超過 5 個 (200KB \* 5 = 1MB)。

### 買方體驗
<a name="saas-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 | 

如需程式碼範例，請參閱「[`BatchMeterUsage` 使用用量配置標記程式碼範例 （選用）](saas-code-examples.md#saas-batchmeterusage-tagging)」。