이 페이지에서는 다음과 같은 Cloud Billing Catalog API 사용 방법을 보여줍니다.
- 각 서비스의 관련 메타데이터를 포함한 모든 공개 서비스의 목록을 가져옵니다.
- 다음을 포함한 서비스의 모든 공개 SKU의 목록을 가져옵니다.
- 사람이 읽을 수 있는 SKU 설명
- SKU 공개 가격
- SKU를 구매할 수 있는 지역
- SKU 카테고리 지정 데이터
커스텀 계약 가격이 있으면 Pricing API를 사용하여 Cloud Billing 계정에 적용할 수 있는 가격을 가져올 수 있습니다.
시작하기 전에
Enable the Cloud Billing API.
Cloud Billing Catalog API를 호출하려면 API 키가 필요합니다. API 키에 관한 자세한 내용은 API 키 사용에서 확인할 수 있습니다.
카탈로그의 공개 서비스 나열
이 단계에서는 각 서비스의 관련 메타데이터를 포함한 모든 공개 서비스의 목록을 가져옵니다.
다음 코드 스니펫은 카탈로그의 모든 공개 서비스를 나열합니다.
요청:
GET https://cloudbilling.googleapis.com/v1/services?key=<var>API_KEY</var>
응답:
{
"services": [
{
"name": "[SERVICE_NAME]",
"serviceId": "[SERVICE_ID]",
"displayName": "[DISPLAY_NAME]",
},
[...]
],
"nextPageToken": "[NEXT_PAGE_TOKEN]"
}
각 항목의 의미는 다음과 같습니다.
[SERVICE_NAME]
은 서비스의 리소스 이름입니다.[SERVICE_ID]
는 서비스의 식별자입니다.[DISPLAY_NAME]
은 사람이 읽을 수 있는 서비스의 표시 이름입니다.
결과는 페이지로 나누기되며 페이지당 SKU 5,000개로 제한됩니다. 응답에는 다음 5,000개의 결과를 가져오는 데 사용할 수 있는 nextPageToken
이 포함됩니다.
다음 배치를 가져오려면 pageToken=[NEXT_PAGE_TOKEN]
을 설정합니다.
페이지당 SKU 수를 줄이려면 pageSize=[CUSTOM_PAGE_SIZE]
를 설정합니다.
모든 항목이 나열된 경우 토큰이 반환되지 않습니다.
서비스의 SKU 목록 가져오기
다음 코드는 지정한 서비스의 카탈로그에 있는 SKU를 나열합니다.
요청:
GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=<var>API_KEY</var>
각 항목의 의미는 다음과 같습니다.
SERVICE_ID
는 상위 서비스의 식별자입니다.
응답:
{
"skus": [
{
"name": "[SKU_NAME]",
"skuId": "[SKU_ID]",
"description": "[SKU_DESCRIPTION]",
"category": {
"serviceDisplayName": "[SVC_DISPLAY_NAME]",
"resourceFamily": "[FAMILY]",
"resourceGroup": "[GROUP]",
"usageType": "[USAGE]",
},
"serviceRegions": [
"[REGION]"
],
"pricingInfo": [
{
"effectiveTime": "[TIME]",
"summary": "[SUMMARY]",
"pricingExpression": {
"usageUnit": "[USAGE_UNIT]",
"usageUnitDescription": "[USAGE_UNIT_DESCRIPTION]",
"baseUnit": "[BASE_UNIT]",
"baseUnitDescription": "[BASE_UNIT_DESCRIPTION]",
"baseUnitConversionFactor": [BASE_CONVERSION_FACTOR],
"displayQuantity": [DISPLAY_QUANTITY],
"tieredRates": [
{
"startUsageAmount": [START_AMOUNT],
"unitPrice": {
"currencyCode": "[CURRENCY_CODE]",
"units": [UNITS],
"nanos": [NANOS],
},
}
],
},
"aggregationInfo": {
"aggregationLevel": enum("[AGGREGATION_LEVEL]"),
"aggregationInterval": enum("[AGGREGATION_INTERVAL]"),
"aggregationCount": [AGGREGATION_COUNT],
},
"currencyConversionRate": [CONVERSION_RATE],
}
],
"serviceProviderName": "[SERVICE_PROVIDER]",
"geoTaxonomy": {
"type": "[TAXONOMY_TYPE]",
"regions": [
"[REGION]"
]
}
}
],
"nextPageToken": "[NEXT_PAGE_TOKEN]"
}
각 항목의 의미는 다음과 같습니다.
[SKU_NAME]
은services/{SERVICE_ID}/skus/{SKU_ID}
형식의 SKU 리소스 이름입니다.[SKU_ID]
는 SKU의 고유 식별자입니다.[SKU_DESCRIPTION]
은 사람이 읽을 수 있는 SKU의 설명입니다.[SVC_DISPLAY_NAME]
은 SKU가 속한 서비스의 표시 이름입니다.[FAMILY]
는 SKU가 참조하는 제품 유형입니다. 예: '컴퓨팅'. '스토리지', 네트워크' 등[GROUP]
은 관련 SKU의 그룹 분류입니다. 예: 'RAM', 'GPU', '예측' 등[USAGE]
는 SKU의 소모량을 나타냅니다. 예: 'OnDemand', 'Preemptible', 'Commit1Mo', 'Commit1Yr' 등[REGION]
은 SKU가 제공되는 서비스 리전 목록입니다. 예: 'asia-east1'[TIME]
은2014-10-02T15:01:23.045123456Z
형식으로 표시되는 타임스탬프로서 가격 책정이 적용된 시간을 나타냅니다.[SUMMARY]
는 사람이 읽을 수 있는 가격 정보 요약입니다.[USAGE_UNIT]
은 가격이 지정된 사용량 단위의 약칭입니다. 예를 들어usageUnit
에 'GiBy'를 입력하면 사용량이 'GiB(기비바이트)' 단위로 지정됨을 의미합니다.[USAGE_UNIT_DESCRIPTION]
은 사람이 읽을 수 있는 사용량 단위입니다(예시: 'GiB').[BASE_UNIT]
은 SKU의 기본 단위이며 사용량 내보내기에 사용되는 단위입니다. 예를 들어 "By"baseUnit
은 사용량이 "바이트"로 지정되었음을 의미합니다.[BASE_UNIT_DESCRIPTION]
은 인간이 읽을 수 있는 형식의 기본 단위입니다. 예를 들면 "바이트"입니다.[BASE_CONVERSION_FACTOR]
는 usage_unit당 가격을 base_unit당 가격으로 변환하고 start_usage 금액을 base_unit의 start_usage_amount로 변환하는 변환 계수입니다. 예를 들면 start_usage_amount * base_unit_convert_factor = start_usage_amount in base_unit입다.[DISPLAY_QUANTITY]
는 가격 책정 정보를 표시할 때 권장되는 수량 단위입니다. 가격 책정 정보를 표시할 때는(unitPrice * displayQuantity) per displayQuantity usageUnit
을 표시하는 것이 좋습니다. 이 입력란은 가격 수식에 영향을 미치지 않으며 표시 목적으로만 사용됩니다. 예를 들어unitPrice
가 '0.0001 USD'면usageUnit
은 'GB'이며displayQuantity
는 '1000'입니다. 따라서 가격 책정 정보를 표시할 때 권장되는 방식은 '1000GB당 0.10 USD'가 됩니다.[START_AMOUNT]
이 금액이 사용된 후 비로소 요율에 따라 사용량의 가격이 책정됩니다. 예를 들어startUsageAmount
10은 처음 10개usage_units
이후부터 아래 정의된 가격으로 사용량에 가격이 책정된다는 뜻입니다.[CURRENCY_CODE]
는 ISO 4217에 따라 정의된 3자리 통화 코드입니다.[UNITS]
는 전체 금액 단위입니다. 예: currencyCode가 'USD'인 경우 단위 1개는 1달러(USD)입니다.[NANOS]
는 금액의 나노(10^-9) 단위 번호입니다. 이 값은 -999,999,999 ~ +999,999,999(포함) 사이여야 합니다. 단위가 양수라면 나노가 양수 또는 0이어야 합니다. 단위가 0인 경우에는 나노가 양수, 0 또는 음수가 될 수 있습니다. 음수 단위일 때는 나노가 음수 또는 0이어야 합니다.
SKU 비용은 units + nanos
입니다. 예를 들어 $1.75 비용은 units=1
및 nanos=750,000,000
으로 나타냅니다.
[AGGREGATION_LEVEL]
은 비용 계산을 위해 사용량을 집계하는 수준입니다. 유효한 값은 ACCOUNT, PROJECT, AGGREGATION_LEVEL_UNSPECIFIED입니다.[AGGREGATION_INTERVAL]
은 비용 계산을 위해 사용량을 집계하는 간격입니다. 유효한 값은 DAILY, MONTHLY, AGGREGATION_INTERVAL_UNSPECIFIED입니다.[AGGREGATION_COUNT]
는 집계하는 간격의 수입니다. 예를 들어aggregationLevel
이 'DAILY'이고aggregationCount
가 14라면 14일 동안 집계됩니다.[CONVERSION_RATE]
는 USD에서 요청에 지정된 통화로 전환될 때 적용되는 통화 전환율입니다. 통화가 지정되지 않은 경우 기본값은 1.0입니다.[SERVICE_PROVIDER]
는 서비스 제공업체를 식별합니다. Google Cloud Platform의 자사 서비스에는 'Google'이 사용됩니다.[TAXONOMY_TYPE]
은 SKU의 지리적 분류 유형입니다(GLOBAL
,REGIONAL
,MULTI_REGIONAL
).[REGION]
은 SKU와 연결된 리전 목록입니다. 이 필드는 모든 Google Cloud 리전과 연결되어 있으므로 전역 SKU에 대해 비어 있습니다.
결과는 페이지로 나누기되며 페이지당 SKU 5,000개로 제한됩니다. 응답에는 다음 5,000개의 결과를 가져오는 데 사용할 수 있는 nextPageToken
이 포함됩니다.
다음 배치를 가져오려면 pageToken=[NEXT_PAGE_TOKEN]
을 설정합니다.
페이지당 SKU 수를 줄이려면 pageSize=[CUSTOM_PAGE_SIZE]
를 설정합니다.
모든 항목이 나열된 경우 토큰이 반환되지 않습니다.
관련 정보
가격 책정 및 SKU 정보는 가격 책정 표 보고서 또는 BigQuery로 Cloud Billing 가격 책정 내보내기도 참조하세요.