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 delle vendite 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 consiste nell'usare il Calcolatore prezzi di Azure o usare il portale di Azure. Questa API offre un'esperienza non autenticata per ottenere tariffe di vendita al dettaglio per tutti i servizi di Azure. Usare l'API per esplorare i prezzi per i servizi di Azure rispetto a aree diverse e a 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 mostrati in valuta USD sono i prezzi al dettaglio di Microsoft. Altri prezzi non USD restituiti dall'API sono utili per la stima delle spese di budget.
Versione di anteprima
È possibile usare la nuova versione dell'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 contatori primari e i contatori non primari.
L'utilizzo di https://prices.azure.com/api/retail/prices 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 versione https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
.
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 con 2021-10-01
e versioni successive dell'API, tra cui 2023-01-01
.
Il valore del filtro fa distinzione tra maiuscole e minuscole
Nelle versioni precedenti dell'API, il valore del filtro non fa distinzione tra maiuscole e minuscole. Tuttavia, nella versione 2023-01-01-preview
e versioni successive, il valore fa distinzione tra maiuscole e minuscole.
Per esempio:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
funziona.
Nelle versioni precedenti dell'API Virtual Machines
e virtual machines
funzionava.
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 ci si impegna a un piano di risparmio, si ottiene un prezzo più economico rispetto al prezzo OnDemand
. 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 dell'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 le macchine virtuali dell'istanza riservata:
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'
È possibile aggiungere il codice di valuta all'endpoint API, come illustrato nella chiamata di esempio api. Per un elenco completo delle valute supportate, vedere Valute supportate.
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 delle prenotazioni.
{
"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 DELL'API fornisce la paginazione. Per ogni richiesta API, vengono restituiti un massimo di 1.000 record. Alla fine della risposta dell'API, ha il collegamento alla pagina successiva. Per esempio:
"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000
Dettagli delle proprietà DELL'API
Ecco tutti i dettagli della proprietà che fanno parte della risposta dell'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 al dettaglio Microsoft senza sconto |
unitPrice |
0.176346 | Uguale a retailPrice |
armRegionName |
westeurope |
Area di Azure Resource Manager in cui è disponibile il servizio. Questa versione supporta solo i prezzi nel cloud commerciale. |
Location |
Ue occidentale | Data center di Azure in cui viene distribuita la risorsa |
effectiveStartDate |
2020-08-01T00:00:00Z | Campo facoltativo. Indica 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 |
Macchine virtuali Serie FS Windows | Nome prodotto |
skuName |
F16s Spot | Nome SKU |
serviceName |
Macchine virtuali | Nome del servizio |
serviceId |
DZH313Z7MMC8 | UniqueID del servizio |
serviceFamily |
Calcolare | 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 dei termini per un piano di risparmio di Azure, associato alle informazioni di savingsPlan . |
Filtri API
I filtri sono supportati per i campi seguenti:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
Aggiungere i filtri all'endpoint API, come illustrato nelle chiamate di esempio dell'API.
Valori serviceFamily supportati
Le informazioni seguenti sono l'elenco dei valori di serviceFamily
supportati. Le informazioni sono soggette a modifiche.
Analytics
Azure Arc
Azure Communication Services
Azure Security
Azure Stack
Compute
Containers
Data
Databases
Developer Tools
Dynamics
Gaming
Integration
Internet of Things
Management and Governance
Microsoft Syntex
Mixed Reality
Networking
Other
Power Platform
Quantum Computing
Security
Storage
Telecommunications
Web
Windows Virtual Desktop
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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+