Obtén información sobre los precios de Google Cloud

En esta página, se muestra cómo usar la API del catálogo de Facturación de Cloud para las siguientes tareas:

  • Obtener una lista de todos los servicios públicos, incluidos los metadatos relevantes de cada servicio
  • Obtener una lista de todos los SKU públicos de un servicio en la que se incluya esta información:
    • Una descripción legible del SKU
    • El precio público del SKU
    • Las regiones donde el SKU está disponible para la compra
    • Datos de categorización acerca del SKU

Antes de comenzar

Habilita la API Cloud Billing.

Habilita la API

Para llamar a la API del catálogo de Billing, se necesita una clave de API. Encontrarás información al respecto en Usa claves de API.

Muestra una lista de servicios públicos del catálogo

En este paso, obtendrás una lista de todos los servicios públicos junto con metadatos acerca de cada uno.

API

En el siguiente fragmento de código, se enumeran todos los servicios públicos incluidos en el catálogo.

Solicitud:

GET https://cloudbilling.googleapis.com/v1/services?key=API_KEY

Respuesta:

{
  "services": [
    {
      "name": "[SERVICE_NAME]",
      "serviceId": "[SERVICE_ID]",
      "displayName": "[DISPLAY_NAME]",
    },
    [...]
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

Donde:

  • [SERVICE_NAME] es el nombre del recurso correspondiente al servicio.
  • [SERVICE_ID] es el identificador del servicio.
  • [DISPLAY_NAME] es el nombre comercial legible del servicio.

Los resultados se paginan y se limitan a 5, 000 SKU por página. La respuesta incluye un nextPageToken que puedes usar para obtener los siguientes 5,000 resultados. Para recuperar el siguiente lote, establece pageToken=[NEXT_PAGE_TOKEN]. Para reducir la cantidad de SKU por página, establece pageSize=[CUSTOM_PAGE_SIZE]. Cuando se enumeran todos los elementos, no se muestra ningún token.

Obtener la lista de SKU de un servicio

API

El siguiente fragmento de código genera una lista de los SKU incluidos en el catálogo en relación con el servicio especificado:

Solicitud:

GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=API_KEY

Donde:

  • SERVICE_ID es el identificador del servicio superior.

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]",
    }
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

En la respuesta anterior, se ilustra lo siguiente:

  • [SKU_NAME] es el nombre del recurso para el SKU con el formato services/{SERVICE_ID}/skus/{SKU_ID}.
  • [SKU_ID] es el identificador único del SKU.
  • [SKU_DESCRIPTION] es una descripción legible del SKU.
  • [SVC_DISPLAY_NAME] es el nombre visible del servicio al que pertenece el SKU.
  • [FAMILY] es el tipo de producto al que se refiere el SKU. Por ejemplo, “Compute”, “Storage”, “Network”, etcétera.
  • [GROUP] es una clasificación grupal de los SKU relacionados. Por ejemplo, “RAM”, “GPU”, “Prediction”, etcétera.
  • [USAGE] representa cómo se consume el SKU. Por ejemplo, “OnDemand”, “Preemptible”, “Commit1Mo”, “Commit1Yr”, etcétera.
  • [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 este precio entró en vigor y tiene el formato 2014-10-02T15:01:23.045123456Z.
  • [SUMMARY] es un resumen legible de la información de precios.
  • [UNIT] es una abreviatura de la unidad de uso en la que se especifica el precio. Por ejemplo, si usageUnit es “GiBy”, significa que el uso se especifica en “Gibibytes”.
  • [UNIT_DESCRIPTION] es la unidad de uso en formato legible (por ejemplo, “Gibibyte”).
  • [DISPLAY_QUANTITY] es la cantidad recomendada de unidades para mostrar información de precios. Cuando se muestra información de precios, se recomienda mostrar: (unitPrice * displayQuantity) per displayQuantity usageUnit. Este campo no afecta la fórmula de precios y se usa solo por motivos de visualización. Por ejemplo, si unitPrice es “$0,0001”, usageUnit es “GB” y displayQuantity es “1,000”, la forma recomendada de mostrar la información es “$0.10 por 1,000 GB”.
  • [START_AMOUNT] indica la cantidad que debe consumirse para que el uso comience a cobrarse según la tarifa. Por ejemplo, si startUsageAmount es 10, el precio de uso se ajustará al precio definido a continuación después de las primeras 10 usage_units.
  • [CURRENCY_CODE] es el código de moneda de tres letras, según se define en la norma ISO 4217.
  • [UNITS] es la unidad de un número entero de esta cantidad. Por ejemplo, si currencyCode es “USD”, cada unidad es 1 dólar estadounidense.
  • [NANOS] es la cantidad de nanosegundos (10^-9) de la cantidad. Debe ser un valor entre –999,999,999 y +999,999,999, incluido. Si la cantidad de unidades es positiva, los nanosegundos deben ser positivas o cero. Si la cantidad de unidades es cero, los nanosegundos pueden ser positivas, cero o negativas. Si la cantidad de unidades es negativa, los nanosegundos deben ser negativos o cero.

    El costo del SKU es de units + nanos. Por ejemplo, un costo de $1.75 se representa como units=1 y nanos=750,000,000.

  • [AGGREGATION_LEVEL] es el nivel en el que el uso se agrega para calcular el costo. Los valores posibles son ACCOUNT, PROJECT y AGGREGATION_LEVEL_UNSPECIFIED.

    • [AGGREGATION_INTERVAL] es el período en el que se suma el uso a fin de calcular el costo. Los valores posibles son DAILY, MONTHLY y AGGREGATION_INTERVAL_UNSPECIFIED.
    • [AGGREGATION_COUNT] es la cantidad de períodos en los que se debe sumar. Por ejemplo, si aggregationLevel es “DAILY” y aggregationCount es 14, la suma durará más de 14 días.
    • [CONVERSION_RATE] es el porcentaje de conversiones aplicado a las monedas cuando se convierte de USD a la moneda especificada en la solicitud. Si no se especifica la moneda, se usa una tasa predeterminada de 1.0.
    • [SERVICE_PROVIDER] identifica al proveedor de servicios. En el caso de los servicios de Google Cloud Platform, el valor es “Google”.

    Los resultados se paginan y se limitan a 5, 000 SKU por página. La respuesta incluye un nextPageToken que puedes usar para obtener los siguientes 5,000 resultados. Para recuperar el siguiente lote, establece pageToken=[NEXT_PAGE_TOKEN]. Para reducir la cantidad de SKU por página, establece pageSize=[CUSTOM_PAGE_SIZE]. Cuando se enumeran todos los elementos, no se muestra ningún token.

La información de los precios y SKU también está disponible en el informe de la tabla de precios o en la página Exporta datos de la Facturación de Cloud a BigQuery.