Översikt över Azure-detaljhandelspriser
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 för detaljhandelspriser 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 Portal. 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.
Viktigt
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 priser som inte är USD som returneras av API:et är 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 den fullständiga uppsättningen mätare, inklusive primära mätare och icke-primariska mätare.
Använder antingen https://prices.azure.com/api/retail/prices eller https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview returnerar den fullständiga uppsättningen mätare.
Priser för sparplaner är endast tillgängliga med https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
versionen.
Primär mätarfiltrering
Du kan begränsa svar för 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 av 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 versionen 2023-01-01-preview
och senare är värdet skiftlägeskänsligt.
Exempel:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Fungerar.
I tidigare API-versioner Virtual Machines
och virtual machines
fungerade.
Nu fungerar bara Virtual Machines
.
Stöd för Azure-sparplan
Som tidigare nämnts stöds azure-besparingsplanens detaljhandelspriser 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 besparingsplan har resultaten ett motsvarande avsnitt för besparingsplanen. När du förbinder dig till en besparingsplan får du ett billigare pris än priset OnDemand
. 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 är 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'
Exempelanrop filtrerade för beräkning med valuta i euro:
https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'
API-svarsexempel
Här är ett exempel på ETT 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. 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 priser 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 | Priser utan rabatt |
unitPrice |
0.176346 | |
armRegionName |
westeurope |
Azure Resource Manager region där tjänsten är tillgänglig. Den här versionen stöder endast priser i kommersiellt moln. |
Location |
Europa, 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 | UniqueID för produkten |
skuId |
DZH318Z0BQPS/00TG | UniqueID för SKU:n |
productName |
Virtual Machines FS Series Windows | Produktnamn |
skuName |
F16s-plats | SKU-namn |
serviceName |
Virtual Machines | Namnet på tjänsten |
serviceId |
DZH313Z7MMC8 | UniqueID för tjänsten |
serviceFamily |
Compute | Tjänstfamilj för SKU:n |
unitOfMeasure |
1 timme | Hur användningen mäts för tjänsten |
Type |
DevTestConsumption | Typ av mätarförbrukning. Andra typer är Reservation och Consumption . |
isPrimaryMeterRegion |
Sant | 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-besparingsplan 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.
Valutor som stöds
Du lägger till valutakoden i API-slutpunkten, som du ser i API-exempelanropet.
Valutakod | Detalj |
---|---|
USD | US-dollar |
AUD | Australiendollar |
BRL | Brasilianska verkliga |
CAD | Kanadensisk dollar |
CHF | Schweizerfranc |
CNY | Kinesisk yuan |
DKK | Danska kronor |
EURO | Euro |
GBP | Brittiskt pund |
INR | Indisk rupie |
JPY | Japanska yen |
WON | Koreanska vann |
NOK | Norska kronor |
NZD | Nyzeeländskt dollar |
GNIDA | Rysk rubel |
SEK | Svenska kronor |
TWD | Taiwandollar |
Programmatiskt exempel
Följande enkla Python-program använder API:et för att fråga prissättningen för detaljhandelsplats för en virtuell dator med standard-NP20 SKU 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 Cost Management-API:er.