결제 측정항목 보고

이 페이지에서는 Cloud Billing에서 서비스 소비자에게 요금을 청구할 수 있게 Service Infrastructure를 사용하여 결제 사용량 데이터를 전송하도록 관리형 서비스를 사용 설정하는 방법을 설명합니다. 예를 들어 library.appspot.com/books/borrowed라는 측정항목을 정의하여 고객이 대여한 책 수를 측정하고 측정항목의 SKU(재고 관리 코드)와 가격을 정의할 수 있습니다.

Service Control API에서는 측정항목을 수락하고, 일괄 처리 및 집계를 거쳐 Cloud Billing에 전달합니다. Cloud Billing에서 이러한 측정항목을 내부 데이터화하고 사전 정의된 가격 모델을 기준으로 청구서를 생성합니다. 사전 정의된 가격 모델이 없으면 Cloud Billing에서 청구 측정항목을 무시합니다. 가격 모델을 정의하려면 Google Cloud 파트너 계정 관리자에게 문의하세요.

결제 구성

Service Control API로 결제 데이터를 전송하기 전에 서비스 구성에 3가지 정보를 지정해야 합니다.

  • 모니터링 리소스: 각 리소스의 결제 사용량을 수집할 수 있습니다. 모니터링 리소스에 결제 사용량의 위치를 나타내는 cloud.googleapis.com/location 라벨 키가 하나 이상 있어야 합니다.

  • 측정항목: 하나 이상의 측정항목을 보고할 수 있습니다. 각 측정항목은 특정 유형의 리소스 사용량을 측정합니다. INT64 값이 있는 델타 측정항목만 결제를 지원합니다.

  • 결제 구성: Cloud Billing으로 전송할 측정항목을 지정할 수 있습니다.

다음 서비스 구성 예에서는 고객이 대여한 책 수를 측정하는 측정항목 하나를 정의합니다. 클라이언트는 services.report 메서드를 호출하여 측정항목의 값을 보고할 수 있습니다. 결제 구성에 대한 자세한 내용은 billing.proto를 참조하세요.

# library
monitored_resources:
 - type: library.appspot.com/branch
   labels:
   - key: cloud.googleapis.com/location
     description: The cloud location.
   - key: library.appspot.com/city
     description: The city where the library branch is located in.

# The metrics to be used.
metrics:
- name: library.appspot.com/books/borrowed
  metric_kind: DELTA
  value_type: INT64
  unit: '1'

# The billing configuration.
billing:
  consumer_destinations:
  - monitored_resource: library.appspot.com/branch
    metrics:
    - library.appspot.com/books/borrowed

결제 측정항목 보고

서비스 구성에서 모니터링을 구성하고 Service Management API에 구성을 푸시하면 Service Control API를 호출하여 측정항목을 보고할 수 있습니다. 다음 예시에서는 gcurl 명령어를 사용하여 호출을 보여줍니다. 설정 방법은 Service Control API 시작하기를 참조하세요.

$ gcurl -d "{
  'operations': [ {
    'operationId': '8356d3c5-f9b5-4274-b4f9-079a3731e6e5',
    'consumerId': 'project:library-consumer',
    'startTime': '`date +%FT%T%:z`',
    'endTime': '`date +%FT%T%:z`',
    'labels': {
      'cloud.googleapis.com/location': 'us-west1',
      'library.appspot.com/city': 'Kirkland',
    },
    'metricValueSets': [ {
      'metricName': 'library.appspot.com/books/borrowed',
      'metricValues': [ { 'int64Value': '10' } ]
    } ]
  } ]
}" https://servicecontrol.googleapis.com/v1/services/library.appspot.com:report