Översikt över Azure Retail Prices
Azure-kunder har letat efter ett programmatiskt sätt att hämta detaljhandelspriser för alla Azure-tjänster. Nu kan du använda API:et Priser för detaljhandeln för att hämta detaljhandelspriser för alla Azure-tjänster. Tidigare var det enda sättet att hämta priser för Azure-tjänster att antingen använda Priskalkylatorn för Azure eller använda Azure-portalen. Det här API:et ger dig en oautentiserad upplevelse för att få detaljhandelspriser för alla Azure-tjänster. Använd API:et för att utforska priser för Azure-tjänster mot olika regioner och olika SKU:er. Det programmatiska API:et kan också hjälpa dig att skapa egna verktyg för intern analys och prisjämförelse mellan SKU:er och regioner.
Viktig
Den valuta som Microsoft använder för att prissätta alla Azure-tjänster är USD. Priserna som visas i USD-valuta är Microsofts detaljhandelspriser. Andra icke-USD-priser som returneras av API:et är till för din referens som hjälper dig att beräkna budgetkostnader.
Förhandsversion
Du kan använda den nya API-versionen 2023-01-01-preview på https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. Förhandsversionen är bakåtkompatibel med tidigare API-versioner. URL:en returnerar hela uppsättningen mätare, inklusive primära mätare och icke-privilegierade mätare.
Om du använder antingen https://prices.azure.com/api/retail/prices eller https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview returneras hela uppsättningen mätare.
Priser för sparplaner är endast tillgängliga med den https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
versionen.
Primär mätarfiltrering
Du kan begränsa svar till att endast hämta priser för primära mätare med:
https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'
Primär mätarfiltrering stöds med 2021-10-01
och senare API-versioner, inklusive 2023-01-01
.
Filtervärdet är skiftlägeskänsligt
I tidigare API-versioner var filtervärdet inte skiftlägeskänsligt. Men i den 2023-01-01-preview
versionen och senare är värdet skiftlägeskänsligt.
Till exempel:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
fungerar.
I tidigare API-versioner fungerade Virtual Machines
och virtual machines
.
Nu fungerar bara Virtual Machines
.
Stöd för Azure-sparplan
Som tidigare nämnts stöds detaljhandelspriser för Azure-sparplan endast med förhandsversionen (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). För de mätare som är berättigade till en sparplan har resultaten ett motsvarande avsnitt för sparplan. När du förbinder dig till en sparplan får du ett billigare pris än det OnDemand
priset. Mer information om Azure-sparplaner finns i dokumentationen om Azure-sparplaner.
Här är ett exempel på API-svar med information om sparplan:
{
"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"
}
]
},
API-slutpunkt
https://prices.azure.com/api/retail/prices
API-exempelanrop
Här följer några exempel:
Exempelanrop filtrerade för endast virtuella datorer:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Exempelanrop filtrerade för endast reservationer:
https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'
Exempelanrop filtrerade för virtuella datorer med reserverad instans:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'
Exempelanrop filtrerade efter beräkningsresurser:
https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'
Du kan lägga till valutakoden i API-slutpunkten, som du ser i API-exempelanropet. En fullständig lista över valutor som stöds finns i valutor som stöds.
Exempelanrop filtrerade för beräkning med valuta i euro:
https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'
Exempel på API-svar
Här är ett exempel på API-svar, utan reservationspriser.
{
"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"
}
Här är ett exempel på API-svar med reservationspriser och term i svaret.
{
"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"
}
Här är ett exempelsvar med en valuta som inte är 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"
}
API-svarsnumrering
API-svaret ger sidnumrering. För varje API-begäran returneras högst 1 000 poster. I slutet av API-svaret finns länken till nästa sida. Till exempel:
"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000
API-egenskapsinformation
Här är all egenskapsinformation som ingår i API-svaret.
Fält | Exempelvärden | Definition |
---|---|---|
currencyCode |
USD | Den valuta där priserna definieras och returnerar priser i USD om inget anges. |
tierMinimumUnits |
0 | Lägsta förbrukningsenheter för att utnyttja priset |
reservationTerm |
1 år | Reservationsperiod – ett år eller tre år |
retailPrice |
0.176346 | Microsofts detaljhandelspriser utan rabatt |
unitPrice |
0.176346 | Samma som retailPrice |
armRegionName |
westeurope |
Azure Resource Manager-region där tjänsten är tillgänglig. Den här versionen stöder endast priser på commercial cloud. |
Location |
EU, västra | Azure-datacenter där resursen distribueras |
effectiveStartDate |
2020-08-01T00:00:00Z | Valfritt fält. Visar det datum då detaljhandelspriserna gäller. |
meterId |
000a794b-bdb0-58be-a0cd-0c3a0f222923 | Unik identifierare för resursen |
meterName |
F16s-plats | Mätarens namn |
productid |
DZH318Z0BQPS | UniktID för produkten |
skuId |
DZH318Z0BQPS/00TG | UniqueID för SKU:n |
productName |
Windows i FS-serien virtual machines | Produktnamn |
skuName |
F16s-plats | SKU-namn |
serviceName |
Virtuella datorer | Tjänstens namn |
serviceId |
DZH313Z7MMC8 | UniqueID för tjänsten |
serviceFamily |
Beräkna | Tjänstfamiljen för SKU:n |
unitOfMeasure |
1 timme | Hur användningen mäts för tjänsten |
Type |
DevTestConsumption | Mätarförbrukningstyp. Andra typer är Reservation och Consumption . |
isPrimaryMeterRegion |
Sann | Anger om mätarregionen har angetts som primär mätare eller inte. Primära mätare används för avgifter och fakturering. |
armSkuName |
Standard_F16s | SKU-namn registrerat i Azure |
term |
3 år | Termlängd för en Azure-sparplan som är associerad med savingsPlan information. |
API-filter
Filter stöds för följande fält:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
Du lägger till filtren i API-slutpunkten, som du ser i API-exempelanropen.
ServiceFamily-värden som stöds
Följande information är listan över värden som stöds serviceFamily
. Informationen kan komma att ändras.
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
Programmatiskt exempel
Följande enkla Python-program använder API:et för att köra frågor mot prissättningen för detaljhandelsplats för en virtuell dator med standard-NP20 SKU:n i regionen USA, södra centrala. Programmet filtrerar utdata från frågan och visar önskad information i tabellformat.
#!/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()
När du kör den här koden genereras följande utdata:
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
Nästa steg
- Läs mer om andra API:er för Cost Management.