設定向 Google 回報使用情形

如果您選擇讓產品根據用量計費,就必須將應用程式的用量回報給 Service Control API

如需 Service Control 的簡介,請參閱入門指南

事前準備

  • 按照「 整合應用程式」一文的說明來設定 Cloud Commerce Partner Procurement API 的存取權。
  • 建議您使用製作人入口網站建立服務帳戶,以便與服務控制項搭配使用。

(適用於根據用量計費) 回報用量

授權建立完成後,您必須使用下列 HTTP GET 要求呼叫 Partner Procurement API,才能擷取 usageReportingId

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

回應會包含授權相關資訊,格式如下:

{
  "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-messaging-service",
  "plan": "pro",
  "usageReportingId": "USAGE_REPORTING_ID",
  "state": "ENTITLEMENT_ACTIVATION_REQUESTED",
  "updateTime": "...",
  "createTime": "..."
}

如要回報用量,您必須先發出 services.check API 呼叫,才能檢查服務設定。如果回應中有空白的 checkErrors[] 物件,請透過 services.report API 呼叫來傳送用量報表。

用量報表是 Service Control API Operation。下列的 example-messaging-service 用量報表範例會針對客戶使用的儲存空間傳送相關資訊:

POST https://servicecontrol.googleapis.com/v1/services/example-messaging-service.gcpmarketplace.example.com:report
{
  "operations": [{
    "operationId": "1234-example-operation-id-4567",
    "operationName": "Hourly Usage Report",
    "consumerId": "USAGE_REPORTING_ID",
    "startTime": "2019-02-06T12:00:00Z",
    "endTime": "2019-02-06T13:00:00Z",
    "metricValueSets": [{
      "metricName": "example-messaging-service/UsageInGiB",
      "metricValues": [{ "int64Value": "150" }]
    }],
    "userLabels": {
      "cloudmarketplace.googleapis.com/resource_name": "order_history_cache",
      "cloudmarketplace.googleapis.com/container_name": "storefront_prod",
      "environment": "prod",
      "region": "us-west2"
    }
  }]
}

其中:

  • operationId 是服務例項產生的專屬字串。請為 checkreport 作業使用相同的 operationId
  • consumerId 與授權的 usageReportingId 相同。
  • startTimeendTime 代表 report 作業的總間隔開始和結束時間。在大多數情況下,report 作業的 startTime 應與前一項 report 作業的 endTime 具有相同的值。如果客戶的服務在 report 作業的 startTime 前就已停用,services.check API 呼叫會在 checkErrors[] 物件中傳送錯誤,系統也不會向客戶收取這段時間內的費用。
  • MetricValueSet 包含一或多個中間時間間隔,以及相應的更新指標值。選擇並提交計費模式時,您必須定義服務的指標。您可以在 Producer Portal 的「技術整合」專區中查看指標的 ID 並參照。
  • userLabels 是使用者建立的標籤,定義為遵循特定語法規定的鍵/值字串。這些標籤會轉送至 Cloud Billing 成本管理工具,以便歸因。如需使用率標示相關的建議,請參閱使用率標示的最佳做法

如果 services.check API 傳回下列其中一或多種錯誤,建議您在解決問題之前,先停止向客戶提供服務:

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED