Questa pagina mostra come utilizzare l'API Cloud Billing Catalog per:
- Recuperare un elenco di tutti i servizi pubblici, inclusi i metadati pertinenti di ciascun servizio.
- Ottenere un elenco di tutti gli SKU pubblici 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 disponi di prezzi contrattuali personalizzati, puoi utilizzare l'API Prices per ottenere i prezzi applicabili al tuo account di fatturazione Cloud.
Prima di iniziare
Enable the Cloud Billing 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.
Lo snippet di codice riportato di seguito elenca tutti i servizi pubblici presenti 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 impaginati e sono limitati a 5000 SKU per pagina. La risposta include un nextPageToken
che puoi utilizzare per ottenere i successivi 5000 risultati.
Per recuperare il batch successivo, imposta pageToken=[NEXT_PAGE_TOKEN]
.
Per ridurre il numero di SKU per pagina, imposta pageSize=[CUSTOM_PAGE_SIZE]
.
Una volta elencati tutti gli elementi, 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 formatoservices/{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 "Compute", "Archiviazione", "Rete" e così via.[GROUP]
è una classificazione di gruppo per SKU correlati. ad esempio "RAM, "GPU", "Previsione" e così via.[USAGE]
indica come viene consumato lo SKU. Ad esempio, "OnDemand", "Prerilasciabile", "Commit1Mo", "Commit1Yr" e così via.[REGION]
è l'elenco di regioni di servizio in cui è offerto lo SKU. Ad esempio, "asia-east1".[TIME]
è un timestamp che rappresenta il momento a partire dal quale i prezzi sono stati applicati nel formato2014-10-02T15:01:23.045123456Z
.[SUMMARY]
è un riepilogo leggibile delle informazioni sui prezzi.[USAGE_UNIT]
è l'abbreviazione dell'unità di utilizzo in cui sono specificati i prezzi. Ad esempio,usageUnit
di "GiBy" significa che l'utilizzo è specificato in "Gibibyte".[USAGE_UNIT_DESCRIPTION]
è l'unità di utilizzo espressa 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" significa che l'utilizzo è specificato in "Byte".[BASE_UNIT_DESCRIPTION]
è l'unità di base in formato leggibile. Ad esempio, "byte".[BASE_CONVERSION_FACTOR]
è il fattore di conversione per convertire il prezzo per unità di utilizzo in prezzo per unità_base e per convertire l'importo start_usage in start_usage_amount in unità_base. 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 le informazioni sui prezzi sono visualizzate, è consigliabile indicare:(unitPrice * displayQuantity) per displayQuantity usageUnit
. Questo campo non influisce sulla formula per la determinazione del prezzo ed è solo a scopo di visualizzazione. Ad esempio, seunitPrice
è "0,0001 EUR",usageUnit
è "GB" edisplayQuantity
è "1000", il modo consigliato per mostrare le informazioni sui prezzi è "0,10 EUR per 1000 GB".[START_AMOUNT]
La tariffa di utilizzo viene applicata solo dopo aver consumato questo importo. Ad esempio, un valorestartUsageAmount
pari a 10 indica che verrà applicato il prezzo dell'utilizzo definito di seguito dopo i primi 10usage_units
.[CURRENCY_CODE]
è il codice di tre lettere della valuta nel formato ISO 4217.[UNITS]
è l'intera unità dell'importo. Ad esempio, se currencyCode è "USD", allora 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 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 è pari a units + nanos
. Ad esempio, un costo di 1,75 $è rappresentato come units=1
e nanos=750,000,000
.
[AGGREGATION_LEVEL]
è il livello al quale l'utilizzo viene aggregato per calcolare i costi. I valori validi sono ACCOUNT, PROJECT, e AGGREGATION_LEVEL_UNSPECIFIED.[AGGREGATION_INTERVAL]
è l'intervallo in cui l'utilizzo viene aggregato per il calcolo del costo. I valori validi sono DAILY, MONTH e AGGREGATION_INTERVAL_UNSPECIFIED.[AGGREGATION_COUNT]
è il numero di intervalli da aggregare. Ad esempio, seaggregationLevel
è "GIORNALIERO" eaggregationCount
è 14, l'aggregazione sarà di 14 giorni.[CONVERSION_RATE]
è il tasso di conversione per la conversione della valuta, da USD alla valuta specificata nella richiesta. Se la valuta non è specificata, il valore predefinito sarà 1,0.[SERVICE_PROVIDER]
identifica il fornitore di servizi. Si tratta di "Google" per i servizi proprietari in Google Cloud Platform.[TAXONOMY_TYPE]
è il tipo di tassonomia geografica per uno SKU:GLOBAL
,REGIONAL
oMULTI_REGIONAL
.[REGION]
è l'elenco di regioni associate a uno SKU. Questo campo è vuoto per gli SKU globali poiché sono associati a tutte le regioni Google Cloud.
I risultati sono impaginati e sono limitati a 5000 SKU per pagina. La risposta include un nextPageToken
che puoi utilizzare per ottenere i successivi 5000 risultati.
Per recuperare il batch successivo, imposta pageToken=[NEXT_PAGE_TOKEN]
.
Per ridurre il numero di SKU per pagina, imposta pageSize=[CUSTOM_PAGE_SIZE]
.
Una volta elencati tutti gli elementi, non viene restituito alcun token.
Informazioni correlate
Le informazioni su prezzi e SKU sono disponibili anche nel report sulla tabella dei prezzi o nell'esportazione dei prezzi di fatturazione Cloud in BigQuery.