如果您選擇讓產品根據用量計費,就必須將應用程式的用量回報給 Service Control API。
如需 Service Control 的簡介,請參閱入門指南。
事前準備
(適用於根據用量計費) 回報用量
授權建立完成後,您必須使用下列 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
是服務例項產生的專屬字串。請為check
和report
作業使用相同的operationId
。consumerId
與授權的usageReportingId
相同。startTime
和endTime
代表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