En esta página, se muestra cómo usar la API Cloud Billing Catalog para realizar las siguientes acciones:
- Obtener una lista de todos los servicios públicos, incluidos los metadatos de cada uno de ellos.
- Conseguir una lista de todos los SKU públicos de un servicio que incluya lo siguiente:
- Descripción del SKU con formato legible para humanos
- Precios públicos del SKU
- Regiones donde el SKU puede comprarse
- Datos de categorización del SKU
Antes de empezar
Para llamar a la API Cloud Billing Catalog, se precisa una clave de API. Para obtener más información al respecto, consulta Utilizar claves de API.
Mostrar los servicios públicos del catálogo
En este paso, obtendrás una lista de todos los servicios públicos con sus metadatos correspondientes.
API
Con el siguiente fragmento de código se muestran todos los servicios públicos del catálogo:
Petición:
GET https://cloudbilling.googleapis.com/v1/services?key=API_KEY
Respuesta:
{
"services": [
{
"name": "[SERVICE_NAME]",
"serviceId": "[SERVICE_ID]",
"displayName": "[DISPLAY_NAME]",
},
[...]
]
}
Donde:
[SERVICE_NAME]
es el nombre de recurso del servicio.[SERVICE_ID]
es el identificador del servicio.[DISPLAY_NAME]
es el nombre del servicio con formato legible para humanos.
Obtener la lista de SKUs de un servicio
API
Con el siguiente fragmento de código se muestran los SKU del servicio incluidos en el catálogo:
Petición:
GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=API_KEY
Donde:
SERVICE_ID
es el identificador del servicio principal.
Respuesta:
{
"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": "[UNIT]",
"usageUnitDescription": "[UNIT_DESCRIPTION]",
"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]",
}
]
}
Donde:
[SKU_NAME]
es el nombre de recurso del SKU con el formatoservices/{SERVICE_ID}/skus/{SKU_ID}
.[SKU_ID]
es el identificador único del SKU.[SKU_DESCRIPTION]
es una descripción del SKU con formato legible para humanos.[SVC_DISPLAY_NAME]
es el nombre visible del servicio al que pertenece el SKU.[FAMILY]
es el tipo de producto al que hace referencia el SKU. Por ejemplo, "Compute", "Storage", "Network", etc.[GROUP]
es una clasificación de grupo de SKU relacionados. Por ejemplo, "RAM", "GPU", "Prediction", etc.[USAGE]
indica cómo se consume el SKU. Por ejemplo, "OnDemand", "Preemptible", "Commit1Mo", "Commit1Yr", etc.[REGION]
es la lista de regiones de servicio en las que se ofrece el SKU. Por ejemplo, "asia-east1".[TIME]
es una marca de tiempo que representa la hora a partir de la cual entró en vigencia dicho precio, con el formato2014-10-02T15:01:23.045123456Z
.[SUMMARY]
es un resumen de la información sobre precios con formato legible para humanos.[UNIT]
es la versión corta de la unidad de uso en que se especifica el precio. Por ejemplo,usageUnit
de "GiBy" significa que el uso se especifica en "Gibibytes".[UNIT_DESCRIPTION]
es la unidad de uso con formato legible para humanos, como "Gibibyte".[DISPLAY_QUANTITY]
es la cantidad recomendada de unidades para mostrar la información sobre el precio. Al indicar dicha información, se recomienda usar el siguiente formato:(unitPrice * displayQuantity) per displayQuantity usageUnit
. Este campo no afecta a la fórmula de fijación de precios y se usa únicamente con fines informativos. Por ejemplo, siunitPrice
es "0,0001 USD",usageUnit
es "GB" ydisplayQuantity
es "1000", la forma recomendada de mostrar la información sobre el precio es "0,10 USD por cada 1000 GB".[START_AMOUNT]
. Se fija el precio por uso únicamente tras haber consumido esta cantidad. Por ejemplo, si el valor destartUsageAmount
es 10, significa que se fijará el precio por uso tras haber consumido las primeras 10 unidades de uso (usage_units
).[CURRENCY_CODE]
es el código de moneda de tres letras definido en la norma ISO 4217.[UNITS]
representa las unidades enteras del importe. Por ejemplo, si el valor de currencyCode es "USD", 1 unidad equivaldría a un dólar estadounidense.[NANOS]
es el número de unidades nano (10^-9) del importe. Este valor debe estar comprendido entre -999.999.999 y +999.999.999, ambos incluidos. Si las unidades son positivas, los nanos deben ser positivos o iguales a cero. Si las unidades equivalen a cero, los nanos pueden ser positivos, cero o negativos. Si las unidades son negativas, los nanos deben ser negativos o cero. Por ejemplo, -1,75 $ se representa comounits=-1
ynanos=-750,000,000
.[AGGREGATION_LEVEL]
es el nivel en que se suma el uso para calcular el coste. Los valores válidos son ACCOUNT, PROJECT y AGGREGATION_LEVEL_UNSPECIFIED.[AGGREGATION_INTERVAL]
es el intervalo en que se suma el uso para calcular el coste. Los valores válidos son DAILY, MONTHLY y AGREGATION_INTERVAL_UNSPECIFIED.[AGGREGATION_COUNT]
es el número de intervalos que se deben sumar. Por ejemplo, siaggregationLevel
es DAILY yaggregationCount
es 14, la suma será de más de 14 días.[CONVERSION_RATE]
es la tasa de conversión de moneda, de USD a la divisa especificada en la petición. Si no se ha indicado ninguna, el valor predeterminado es 1.0.[SERVICE_PROVIDER]
identifica al proveedor del servicio ("Google" en el caso de los servicios propios de Google Cloud Platform).