Visualizzare le informazioni sui prezzi di Google Cloud disponibili pubblicamente

Questa pagina mostra come utilizzare l'API Cloud Billing Catalog per:

  • Visualizza un elenco di tutti i servizi pubblici, inclusi i metadati pertinenti relativi a ciascun servizio.
  • Visualizza un elenco di tutti gli SKU pubblici all'interno di un servizio, tra cui:
    • Descrizione leggibile dello SKU.
    • Prezzo pubblico dello SKU.
    • Aree geografiche in cui lo SKU è disponibile per l'acquisto.
    • Dati di classificazione dello SKU.

Se hai prezzi del contratto personalizzati, puoi utilizzare l'API Pricing per ottenere i prezzi applicabili al tuo account di fatturazione Cloud.

Prima di iniziare

Prima di poter utilizzare l'API Cloud Billing Catalog, devi abilitare l'API Cloud Billing e ottenere una chiave API.

Enable the Cloud Billing API.

Enable the API

Quando ti viene chiesto di confermare il progetto Google Cloud che intendi utilizzare per l'API Cloud Billing Catalog, ti consigliamo di utilizzare un progetto configurato per contenere tutte le tue esigenze di FinOps e di amministrazione della fatturazione per un account di fatturazione Cloud, inclusa la posizione in cui è attivata l'API Cloud Billing.

Scopri di più sui vantaggi dell'utilizzo di un progetto incentrato su FinOps per i casi d'uso di amministrazione della fatturazione.

Ottieni una chiave API

La chiamata all'API Billing Catalog richiede una chiave API. Puoi trovare dettagli sulle chiavi API in Utilizzare le chiavi API.

Ottenere un elenco dei servizi pubblici dal catalogo

In questo passaggio si illustra come ottenere un elenco di tutti i servizi pubblici e dei metadati pertinenti di ciascun servizio.

Il seguente snippet di codice elenca tutti i servizi pubblici nel catalogo.

Richiesta:

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

Risposta:

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

Dove:

  • [SERVICE_NAME] è il nome della risorsa relativa al servizio.
  • [SERVICE_ID] è l'identificatore relativo al servizio.
  • [DISPLAY_NAME] è il nome leggibile visualizzato relativo al servizio.

I risultati sono suddivisi in pagine e sono limitati a 5000 SKU per pagina. La risposta include un nextPageToken che puoi utilizzare per ottenere i 5000 risultati successivi. Per recuperare il batch successivo, imposta pageToken=[NEXT_PAGE_TOKEN]. Per ridurre il numero di SKU per pagina, imposta pageSize=[CUSTOM_PAGE_SIZE]. Quando tutti gli elementi sono stati elencati, non viene restituito alcun token.

Ottenere l'elenco degli SKU di un servizio

Il seguente snippet di codice elenca gli SKU del catalogo per il servizio pubblico specificato:

Richiesta:

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

Dove:

  • SERVICE_ID è l'identificatore del servizio principale.

Risposta:

{
  "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]"
}

Dove:

  • [SKU_NAME] è il nome della risorsa per lo SKU nel formato services/{SERVICE_ID}/skus/{SKU_ID}.
  • [SKU_ID] è l'identificatore univoco dello SKU.
  • [SKU_DESCRIPTION] è una descrizione leggibile dello SKU.
  • [SVC_DISPLAY_NAME] è il nome visualizzato del servizio a cui appartiene lo SKU.
  • [FAMILY] è il tipo di prodotto a cui si riferisce lo SKU. Ad esempio, "Computing", "Storage", "Network" e così via.
  • [GROUP] è una classificazione di gruppo per SKU correlati. Ad esempio, "RAM", "GPU", "Predizione" e così via.
  • [USAGE] indica come viene consumato lo SKU. Ad esempio, "OnDemand", "Preemptible", "Commit1Mo", "Commit1Yr" e così via.
  • [REGION] è l'elenco delle regioni di servizio in cui viene offerto lo SKU. Ad esempio, "asia-east1".
  • [TIME] è un timestamp che rappresenta il momento a partire dal quale questi prezzi sono stati applicati nel modulo 2014-10-02T15:01:23.045123456Z.
  • [SUMMARY] è un riepilogo leggibile delle informazioni sui prezzi.
  • [USAGE_UNIT] è l'abbreviazione dell'unità di utilizzo in cui è specificato il prezzo. Ad esempio, usageUnit di "GiBy" indica che l'utilizzo è specificato in "Gibibyte".
  • [USAGE_UNIT_DESCRIPTION] è l'unità di misura in formato leggibile, ad esempio "Gibibyte".
  • [BASE_UNIT] è l'unità di base dello SKU ed è l'unità utilizzata nelle esportazioni dell'utilizzo. Ad esempio, baseUnit di "By" indica che l'utilizzo è specificato in "Bytes".
  • [BASE_UNIT_DESCRIPTION] è l'unità di misura di base in formato leggibile. Ad esempio, "byte".
  • [BASE_CONVERSION_FACTOR] è il fattore di conversione per convertire il prezzo per usage_unit in prezzo per base_unit e l'importo start_usage in start_usage_amount in base_unit. Ad esempio, start_usage_amount * base_unit_conversion_factor = start_usage_amount in base_unit.
  • [DISPLAY_QUANTITY] è la quantità consigliata di unità per la visualizzazione delle informazioni sui prezzi. Quando vengono visualizzate le informazioni sui prezzi, è consigliabile mostrare: (unitPrice * displayQuantity) per displayQuantity usageUnit. Questo campo non influisce sulla formula di determinazione del prezzo ed è solo a scopo di visualizzazione. Ad esempio, se unitPrice è "0,0001 $", usageUnit è "GB" e displayQuantity è "1000", il modo consigliato per visualizzare le informazioni sui prezzi è "0,10 $ per 1000 GB".
  • L'utilizzo di [START_AMOUNT] viene calcolato a tariffa solo dopo aver consumato questo importo. Ad esempio, un valore startUsageAmount pari a 10 indica che il prezzo dell'utilizzo sarà quello definito di seguito dopo i primi 10 usage_units.
  • [CURRENCY_CODE] è il codice di tre lettere della valuta nel formato ISO 4217.
  • [UNITS] è l'intera unità dell'importo. Ad esempio, se il codice valuta è "USD", 1 unità corrisponde a un dollaro statunitense.
  • [NANOS] è il numero di nano (10^-9) unità della quantità. Il valore deve essere compreso tra -999.999.999 e +999.999.999 inclusi. Se le unità sono positive, i nano devono essere positivi o pari a zero. Se le unità sono pari a zero, i nano possono essere positivi, zero o negativi. Se le unità sono negative, i nano devono essere negativi o pari a zero.

Il costo dello SKU è units + nanos. Ad esempio, un costo di 1,75 $è rappresentato come units=1 e nanos=750,000,000.

  • [AGGREGATION_LEVEL] è il livello a cui viene aggregato l'utilizzo per calcolare il costo. I valori validi sono ACCOUNT, PROJECT, e AGGREGATION_LEVEL_UNSPECIFIED.
  • [AGGREGATION_INTERVAL] è l'intervallo in cui viene aggregato l'utilizzo per calcolare il costo. I valori validi sono DAILY, MONTHLY e AGGREGATION_INTERVAL_UNSPECIFIED.
  • [AGGREGATION_COUNT] è il numero di intervalli da aggregare. Ad esempio, se aggregationLevel è "GIORNALIERA" e aggregationCount è 14, l'aggregazione sarà superiore a 14 giorni.
  • [CONVERSION_RATE] è il tasso di conversione per la conversione di valute, da USD alla valuta specificata nella richiesta. Se la valuta non è specificata, il valore predefinito è 1,0.
  • [SERVICE_PROVIDER] identifica il fornitore di servizi. Si tratta di "Google" per i servizi proprietari nella Google Cloud Platform.
  • [TAXONOMY_TYPE] è il tipo di tassonomia geografica per uno SKU: GLOBAL, REGIONAL o MULTI_REGIONAL.
  • [REGION] è l'elenco delle regioni associate a uno SKU. Questo campo è vuoto per gli SKU globali, poiché sono associati a tutte le regioni Google Cloud.

I risultati sono suddivisi in pagine e sono limitati a 5000 SKU per pagina. La risposta include un nextPageToken che puoi utilizzare per ottenere i 5000 risultati successivi. Per recuperare il batch successivo, imposta pageToken=[NEXT_PAGE_TOKEN]. Per ridurre il numero di SKU per pagina, imposta pageSize=[CUSTOM_PAGE_SIZE]. Quando tutti gli elementi sono stati elencati, non viene restituito alcun token.

Informazioni sui prezzi e sugli SKU sono disponibili anche nel report della tabella dei prezzi o nell'esportazione dei prezzi di Fatturazione Cloud in BigQuery.