Panoramica dei prezzi al dettaglio di Azure
I clienti di Azure hanno cercato un modo programmatico per recuperare i prezzi al dettaglio per tutti i servizi di Azure. È ora possibile usare l'API Prezzi al dettaglio per ottenere i prezzi al dettaglio per tutti i servizi di Azure. In precedenza, l'unico modo per recuperare i prezzi per i servizi di Azure consisteva nell'usare il calcolatore dei prezzi di Azure o il portale di Azure. L'API offre un'esperienza non autenticata per ottenere i prezzi al dettaglio per tutti i servizi di Azure. Usare l'API per esaminare i prezzi per i servizi di Azure in aree e SKU diversi. L'API programmatica consente anche di creare strumenti personalizzati per l'analisi interna e il confronto dei prezzi tra SKU e aree.
Importante
La valuta usata da Microsoft per il prezzo di tutti i servizi di Azure è USD. I prezzi visualizzati in valuta USD sono i prezzi al dettaglio microsoft. Altri prezzi non USD restituiti dall'API sono per il riferimento per aiutare a stimare le spese di budget.
Versione di anteprima
È possibile usare la nuova versione api 2023-01-01-preview in https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. La versione di anteprima è compatibile con le versioni precedenti dell'API. L'URL restituisce il set completo di metri, inclusi i metri primari e i metri nonprimari.
https://prices.azure.com/api/retail/prices Usando o https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview restituisce il set completo di metri.
Le tariffe per i piani di risparmio sono disponibili solo con la https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
versione.
Filtro del contatore primario
È possibile limitare le risposte per recuperare solo i prezzi dei contatori primari con:
https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'
Il filtro del contatore primario è supportato da 2021-10-01
e versioni api successive, tra cui 2023-01-01
.
Il valore del filtro è distinzione tra maiuscole e minuscole
Nelle versioni precedenti dell'API, il valore del filtro non era distinzione tra maiuscole e minuscole. Tuttavia, nella 2023-01-01-preview
versione e versioni successive, il valore è distinzione tra maiuscole e minuscole.
Ad esempio:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Funziona.
Nelle versioni Virtual Machines
precedenti dell'API e virtual machines
ha funzionato.
Ora, funziona solo Virtual Machines
.
Supporto del piano di salvataggio di Azure
Come accennato in precedenza, i prezzi al dettaglio del piano di risparmio di Azure sono supportati solo con la versione di anteprima (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). Per i contatori idonei per un piano di risparmio, i risultati hanno una sezione corrispondente per il piano di risparmio. Quando si esegue il commit di un piano di risparmio, si ottiene un prezzo più economico rispetto al OnDemand
prezzo. Per altre informazioni sui piani di risparmio di Azure, vedere documentazione sui piani di risparmio di Azure.
Ecco una risposta API di esempio con informazioni sul piano di risparmio:
{
"currencyCode": "USD",
"tierMinimumUnits": 0.0,
"retailPrice": 2.305,
"unitPrice": 2.305,
"armRegionName": "southindia",
"location": "IN South",
"effectiveStartDate": "2019-05-14T00:00:00Z",
"meterId": "0084b086-37bf-4bee-b27f-6eb0f9ee4954",
"meterName": "M8ms",
"productId": "DZH318Z0BQ4W",
"skuId": "DZH318Z0BQ4W/00BQ",
"availabilityId": null,
"productName": "Virtual Machines MS Series",
"skuName": "M8ms",
"serviceName": "Virtual Machines",
"serviceId": "DZH313Z7MMC8",
"serviceFamily": "Compute",
"unitOfMeasure": "1 Hour",
"type": "Consumption",
"isPrimaryMeterRegion": true,
"armSkuName": "Standard_M8ms",
"savingsPlan": [
{
"unitPrice": 0.8065195,
"retailPrice": 0.8065195,
"term": "3 Years"
},
{
"unitPrice": 1.5902195,
"retailPrice": 1.5902195,
"term": "1 Year"
}
]
},
Endpoint API
https://prices.azure.com/api/retail/prices
Chiamate di esempio api
Ecco alcuni esempi:
Chiamate di esempio filtrate solo per le macchine virtuali:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Chiamate di esempio filtrate solo per le prenotazioni:
https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'
Chiamate di esempio filtrate per macchine virtuali di istanza riservate:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'
Chiamate di esempio filtrate per le risorse di calcolo:
https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'
Chiamate di esempio filtrate per il calcolo con valuta in euro:
https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'
Esempi di risposta api
Ecco una risposta API di esempio, senza prezzi di prenotazione.
{
"currencyCode": "USD",
"tierMinimumUnits": 0.0,
"retailPrice": 0.176346,
"unitPrice": 0.176346,
"armRegionName": "westeurope",
"location": "EU West",
"effectiveStartDate": "2020-08-01T00:00:00Z",
"meterId": "000a794b-bdb0-58be-a0cd-0c3a0f222923",
"meterName": "F16s Spot",
"productId": "DZH318Z0BQPS",
"skuId": "DZH318Z0BQPS/00TG",
"productName": "Virtual Machines FS Series Windows",
"skuName": "F16s Spot",
"serviceName": "Virtual Machines",
"serviceId": "DZH313Z7MMC8",
"serviceFamily": "Compute",
"unitOfMeasure": "1 Hour",
"type": "DevTestConsumption",
"isPrimaryMeterRegion": true,
"armSkuName": "Standard_F16s"
}
Ecco una risposta API di esempio con i prezzi delle prenotazioni e il termine nella risposta.
{
"currencyCode": "USD",
"tierMinimumUnits": 0.0,
"reservationTerm": "1 Year",
"retailPrice": 25007.0,
"unitPrice": 25007.0,
"armRegionName": "southcentralus",
"location": "US South Central",
"effectiveStartDate": "2020-08-01T00:00:00Z",
"meterId": "0016083a-928f-56fd-8eeb-39287dcf676d",
"meterName": "E64 v4",
"productId": "DZH318Z0D1L7",
"skuId": "DZH318Z0D1L7/018J",
"productName": "Virtual Machines Ev4 Series",
"skuName": "E64 v4",
"serviceName": "Virtual Machines",
"serviceId": "DZH313Z7MMC8",
"serviceFamily": "Compute",
"unitOfMeasure": "1 Hour",
"type": "Reservation",
"isPrimaryMeterRegion": true,
"armSkuName": "Standard_E64_v4"
}
Ecco una risposta di esempio con una valuta non USD.
{
"currencyCode": "EUR",
"tierMinimumUnits": 0,
"retailPrice": 0.6176,
"unitPrice": 0.6176,
"armRegionName": "westeurope",
"location": "EU West",
"effectiveStartDate": "2021-04-01T00:00:00Z",
"meterId": "000a794b-bdb0-58be-a0cd-0c3a0f222923",
"meterName": "F16s Spot",
"productId": "DZH318Z0BQPS",
"skuId": "DZH318Z0BQPS/00TG",
"productName": "Virtual Machines FS Series Windows",
"skuName": "F16s Spot",
"serviceName": "Virtual Machines",
"serviceId": "DZH313Z7MMC8",
"serviceFamily": "Compute",
"unitOfMeasure": "1 Hour",
"type": "Consumption",
"isPrimaryMeterRegion": true,
"armSkuName": "Standard_F16s"
}
Paginazione della risposta API
La risposta API fornisce la paginazione. Per ogni richiesta API, vengono restituiti un massimo di 1.000 record. Alla fine della risposta api, ha il collegamento alla pagina successiva. Ad esempio:
"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000
Dettagli delle proprietà API
Ecco tutti i dettagli della proprietà che fanno parte della risposta api.
Campo | Valori di esempio | Definizione |
---|---|---|
currencyCode |
USD | Valuta in cui vengono definiti i tassi e restituisce i prezzi in USD a meno che non sia specificato. |
tierMinimumUnits |
0 | Unità minime di consumo per usufruire del prezzo |
reservationTerm |
1 anno | Periodo di prenotazione : un anno o tre anni |
retailPrice |
0.176346 | Prezzi senza sconto |
unitPrice |
0.176346 | |
armRegionName |
westeurope |
Area Resource Manager di Azure in cui è disponibile il servizio. Questa versione supporta solo i prezzi nel cloud commerciale. |
Location |
Europa occidentale | Data center di Azure in cui viene distribuita la risorsa |
effectiveStartDate |
2020-08-01T00:00:00Z | Campo facoltativo. Mostra la data in cui i prezzi al dettaglio sono effettivi. |
meterId |
000a794b-bdb0-58be-a0cd-0c3a0f222923 | Identificatore univoco della risorsa |
meterName |
F16s Spot | Nome del contatore |
productid |
DZH318Z0BQPS | UniqueID del prodotto |
skuId |
DZH318Z0BQPS/00TG | UniqueID per lo SKU |
productName |
Windows Macchine virtuali serie FS | Nome prodotto |
skuName |
F16s Spot | Nome SKU |
serviceName |
Macchine virtuali | Nome del servizio |
serviceId |
DZH313Z7MMC8 | UniqueID del servizio |
serviceFamily |
Calcolo | Famiglia di servizi dello SKU |
unitOfMeasure |
1 ora | Come viene misurato l'utilizzo per il servizio |
Type |
DevTestConsumption | Tipo di consumo del contatore. Altri tipi sono Reservation e Consumption . |
isPrimaryMeterRegion |
Vero | Indica se l'area del contatore è impostata come contatore primario o meno. I contatori primari vengono usati per gli addebiti e la fatturazione. |
armSkuName |
Standard_F16s | Nome SKU registrato in Azure |
term |
3 anni | Lunghezza del termine per un piano di risparmio di Azure, associato savingsPlan alle informazioni. |
Filtri API
I filtri sono supportati per i campi seguenti:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
I filtri vengono aggiunti all'endpoint API, come illustrato nelle chiamate di esempio api.
Valute supportate
Aggiungere il codice di valuta all'endpoint API, come illustrato nella chiamata di esempio api.
Codice valuta | Dettaglio |
---|---|
USD | Dollaro USA |
AUD | Dollaro australiano |
BRL | Brasiliano reale |
CAD | Dollaro canadese |
CHF | Franco svizzero |
CNY | Chinese yen |
DKK | Corona danese |
EUR | Euro |
GBP | Sterlina |
INR | Rupia indiana |
JPY | Yen giapponese |
KRW | Il coreano ha vinto |
NOK | Corona norvegese |
NZD | Dollaro nuova Zelanda |
RUB | Rublo russo |
SEK | Corona svedese |
TWD | Dollaro taiwanese |
Esempio programmatico
La semplice applicazione Python seguente usa l'API per eseguire query sui prezzi spot per la vendita al dettaglio di una macchina virtuale dello SKU NP20 standard nell'area Stati Uniti centro-meridionali. L'applicazione filtra l'output della query e presenta le informazioni desiderate in un formato di tabella.
#!/usr/bin/env python3
import requests
import json
from tabulate import tabulate
def build_pricing_table(json_data, table_data):
for item in json_data['Items']:
meter = item['meterName']
table_data.append([item['armSkuName'], item['retailPrice'], item['unitOfMeasure'], item['armRegionName'], meter, item['productName']])
def main():
table_data = []
table_data.append(['SKU', 'Retail Price', 'Unit of Measure', 'Region', 'Meter', 'Product Name'])
api_url = "https://prices.azure.com/api/retail/prices?api-version=2021-10-01-preview"
query = "armRegionName eq 'southcentralus' and armSkuName eq 'Standard_NP20s' and priceType eq 'Consumption' and contains(meterName, 'Spot')"
response = requests.get(api_url, params={'$filter': query})
json_data = json.loads(response.text)
build_pricing_table(json_data, table_data)
nextPage = json_data['NextPageLink']
while(nextPage):
response = requests.get(nextPage)
json_data = json.loads(response.text)
nextPage = json_data['NextPageLink']
build_pricing_table(json_data, table_data)
print(tabulate(table_data, headers='firstrow', tablefmt='psql'))
if __name__ == "__main__":
main()
L'esecuzione di questo codice produce l'output seguente:
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| SKU | Retail Price | Unit of Measure | Region | Meter | Product Name |
|----------------+----------------+-------------------+----------------+------------+------------------------------------|
| Standard_NP20s | 0.828503 | 1 Hour | southcentralus | NP20s Spot | Virtual Machines NP Series Windows |
| Standard_NP20s | 0.448207 | 1 Hour | southcentralus | NP20s Spot | Virtual Machines NP Series |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
Passaggi successivi
- Informazioni su altre API di Gestione costi.