プロダクトに従量制料金を選択した場合は、アプリの使用状況を Service Control API に報告する必要があります。
Service Control の概要については、スタートガイドをご覧ください。
始める前に
- アプリを統合するの説明に従って、Cloud Commerce Partner Procurement API へのアクセスを設定します。
- Service Control で使用するサービス アカウントを作成するには、Producer Portal を使用することをおすすめします。
(従量制料金の場合)使用状況を報告する
エンタイトルメントが作成されると、次の 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
には、1 つまたは複数の中間期間とそれに対応する更新された指標値が含まれています。サービスの指標は、料金モデルを選択して提出するときに定義します。 Producer Portal の技術統合セクションで指標の ID を表示して参照できます。userLabels
はユーザーが作成するラベルで、特定の構文要件に沿って Key-Value 文字列として定義されます。これらのラベルは、Cloud Billing のコスト管理ツールに転送され、コスト帰属に使用されます。使用状況のラベル付けに関する推奨事項については、使用状況のラベル付けのベスト プラクティスをご覧ください。
services.check
が次のエラーの 1 つ以上を返した場合は、エラーが解決するまで顧客へのサービスの提供を停止することをおすすめします。
SERVICE_NOT_ACTIVATED
BILLING_DISABLED
PROJECT_DELETED