이 페이지에서는 다음과 같은 Cloud Billing Catalog API 사용 방법을 보여줍니다.
- 각 서비스의 관련 메타데이터를 포함한 모든 공개 서비스의 목록을 가져옵니다.
- 다음을 포함한 서비스의 모든 공개 SKU의 목록을 가져옵니다.
- 사람이 읽을 수 있는 SKU 설명
- SKU 공개 가격
- SKU를 구매할 수 있는 지역
- SKU 카테고리 지정 데이터
커스텀 계약 가격이 있으면 Pricing API를 사용하여 Cloud Billing 계정에 적용할 수 있는 가격을 가져올 수 있습니다.
시작하기 전에
Cloud Billing Catalog API를 사용하려면 먼저 Cloud Billing API를 사용 설정하고 API 키를 가져와야 합니다.
Enable the Cloud Billing API.
Cloud Billing Catalog API에 사용할 Google Cloud 프로젝트를 확인하라는 메시지가 표시되면 Cloud Billing API가 사용 설정된 위치를 비롯하여 Cloud Billing 계정의 모든 FinOps 및 결제 관리 요구사항을 포함하도록 설정된 프로젝트를 사용하는 것이 좋습니다.
결제 관리 사용 사례에 FinOps 중심 프로젝트를 사용할 경우의 이점을 자세히 알아보세요.
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 가격 책정 내보내기도 참조하세요.