Obtén información sobre los precios de Google Cloud disponibles públicamente

Esta página te muestra cómo usar la API de Catalog de Cloud Billing para lo siguiente:

  • 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

Si tienes precios de contrato personalizados, puedes usar la API de precios para obtener los precios que se aplican a tu cuenta de Facturación de Cloud.

Antes de comenzar

Antes de usar la API del catálogo de Facturación de Cloud, deberás habilitar la API de Cloud Billing y obtener una clave de API.

Enable the Cloud Billing API.

Enable the API

Cuando se te solicite que confirmes el proyecto de Google Cloud que deseas usar para la API de Cloud Billing Catalog, te recomendamos que uses un proyecto configurado para contener todas tus necesidades de FinOps y administración de facturación de una cuenta de Facturación de Cloud, incluido el lugar donde está habilitada la API de Facturación de Cloud.

Obtén más información sobre los beneficios de usar un proyecto enfocado en FinOps para tus casos de uso de administración de facturación.

Obtén una clave de 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.

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=<var>API_KEY</var>

Respuesta:

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

Aquí:

  • [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.

Obtén la lista de los SKU de un servicio

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=<var>API_KEY</var>

Aquí:

  • 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": "[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]"
}

Aquí:

  • [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.
  • [USAGE_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”.
  • [USAGE_UNIT_DESCRIPTION] es la unidad de uso en formato legible (por ejemplo, “Gibibyte”).
  • [BASE_UNIT] es la unidad base del SKU y es la unidad que se usa en las exportaciones de uso. Por ejemplo, si baseUnit es “By”, el uso se especifica en “Bytes”.
  • [BASE_UNIT_DESCRIPTION] es la unidad base en formato legible. Por ejemplo, “byte”.
  • [BASE_CONVERSION_FACTOR] es el factor de conversión para convertir el precio por usage_unit a precio por base_unit y para convertir la cantidad de start_usage a start_usage_amount en base_unit. Por ejemplo, start_usage_amount * base_unit_conversion_factor = start_usage_amount en base_unit.
  • [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 se suma el uso 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”.
  • [TAXONOMY_TYPE] es el tipo de taxonomía geográfica para un SKU: GLOBAL, REGIONAL o MULTI_REGIONAL.
  • [REGION] es la lista de regiones asociadas con un SKU. Este campo está vacío para los SKU globales, ya que están asociados con todas las regiones de Google Cloud.

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.