Google에 사용량 보고 구성

제품의 사용량 기준 가격 책정을 선택한 경우, 앱의 사용량을 Service Control API에 보고해야 합니다.

Service Control에 대한 소개는 시작하기 가이드를 참조하세요.

시작하기 전에

  • 앱 통합의 설명대로 Cloud Commerce Partner Procurement API에 대한 액세스를 설정합니다.
  • Producer Portal을 사용하여 Service Control에서 사용할 서비스 계정을 만드는 것이 좋습니다.

(사용량 기반 가격 책정의 경우) 사용량 보고

자격이 생성되면, 다음 HTTP GET 요청을 사용하여 파트너 조달 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와 동일합니다.
  • startTimeendTimereport 작업의 전체 간격의 시작 및 종료 시간을 나타냅니다. 대부분의 경우 report 작업의 startTime에는 이전 report 작업의 endTime과 동일한 값이 있어야 합니다. 고객의 서비스가 report 작업의 startTime 전에 중지되면 services.check API 호출은 checkErrors[] 객체에서 오류를 전송하며 해당 간격에 대한 요금은 고객에게 청구되지 않습니다.
  • MetricValueSet에는 중간 시간 간격 하나 이상과 해당하는 업데이트된 측정항목 값이 포함됩니다. 가격 책정 모델을 선택하고 제출할 때 서비스 측정항목을 정의합니다. Producer Portal의 기술 통합 섹션에서 측정항목 식별자를 보고 참조합니다.
  • userLabels는 특정 구문 요구사항을 따르는 키-값 문자열로 정의된 사용자가 만든 라벨입니다. 이러한 라벨은 기여 분석을 위해 Cloud Billing 비용 관리 도구에 전달됩니다. 사용량 라벨 지정과 관련된 권장사항은 사용량 라벨 지정 권장사항을 참조하세요.

services.check API가 다음 오류 중 하나 이상을 리턴하면 오류가 해결될 때까지 고객에게 서비스 제공을 중지하는 것이 좋습니다.

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED