Overzicht van de prijzen voor De Detailhandel van Azure
Azure-klanten zijn op zoek naar een programmatische manier om de detailhandelsprijzen voor alle Azure-services op te halen. U kunt nu de API voor detailhandelstarieven gebruiken om de detailhandelsprijzen voor alle Azure-services op te halen. Voorheen kon u alleen prijzen voor Azure-services ophalen door de Azure-prijscalculator of de Azure Portal te gebruiken. Deze API biedt u een niet-geverifieerde ervaring om detailhandelstarieven te krijgen voor alle Azure-services. Gebruik de API om prijzen voor Azure-services te verkennen op basis van verschillende regio's en verschillende SKU's. De programmatische API kan u ook helpen bij het maken van uw eigen hulpprogramma's voor interne analyse en prijsvergelijking tussen SKU's en regio's.
Belangrijk
De valuta die Microsoft gebruikt om alle Azure-services te prijzen, is USD. Prijzen die worden weergegeven in USD-valuta zijn microsoft-detailhandelsprijzen. Andere niet-USD-prijzen die door de API worden geretourneerd, zijn ter referentie om u te helpen bij het schatten van gebudgetteerde uitgaven.
Preview-versie
U kunt de nieuwe API-versie 2023-01-01-01-preview gebruiken op https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. De preview-versie is achterwaarts compatibel met eerdere API-versies. De URL retourneert de volledige set meters, inclusief primaire meters en niet-primaire meters.
https://prices.azure.com/api/retail/prices Als u of https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview gebruikt, wordt de volledige set meters geretourneerd.
Tarieven voor spaarplannen zijn alleen beschikbaar in de https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
versie.
Filteren van primaire meter
U kunt reacties beperken om alleen prijzen voor primaire meters op te halen met:
https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'
Primaire meterfilters worden ondersteund door 2021-10-01
en latere API-versies, waaronder 2023-01-01
.
Filterwaarde is hoofdlettergevoelig
In eerdere API-versies was de filterwaarde niet hoofdlettergevoelig. In de 2023-01-01-preview
versie en hoger is de waarde echter hoofdlettergevoelig.
Bijvoorbeeld:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Werkt.
In eerdere API-versies en Virtual Machines
virtual machines
werkte.
Nu werkt het alleen Virtual Machines
.
Ondersteuning voor het Azure-opslagplan
Zoals eerder vermeld, worden de detailhandelsprijzen van Het Azure-spaarplan alleen ondersteund met de preview-versie (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). Voor de meters die in aanmerking komen voor een spaarplan, hebben de resultaten een bijbehorende sectie voor het spaarplan. Wanneer u zich vastlegt aan een spaarplan, krijgt u een goedkopere prijs dan de OnDemand
prijs. Zie documentatie over Azure-spaarplannen voor meer informatie over Azure-spaarplannen.
Hier volgt een voorbeeld van een API-antwoord met informatie over het besparingsplan:
{
"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-eindpunt
https://prices.azure.com/api/retail/prices
API-voorbeeldoproepen
Hier volgen enkele voorbeelden:
Voorbeeld van aanroepen die zijn gefilterd op alleen virtuele machines:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Voorbeeld van aanroepen die zijn gefilterd op alleen reserveringen:
https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'
Voorbeeld van aanroepen die zijn gefilterd op virtuele machines van gereserveerde instanties:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'
Voorbeeld van aanroepen die zijn gefilterd op rekenresources:
https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'
Voorbeeld van aanroepen die zijn gefilterd voor berekening met valuta in euro:
https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'
Voorbeelden van API-antwoorden
Hier volgt een voorbeeld van een API-antwoord, zonder reserveringsprijzen.
{
"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"
}
Hier volgt een voorbeeld van een API-antwoord met reserveringsprijzen en -termijn in het antwoord.
{
"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"
}
Hier volgt een voorbeeld van een antwoord met een niet-USD-valuta.
{
"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-antwoordpaginering
Het API-antwoord biedt paginering. Voor elke API-aanvraag worden maximaal 1000 records geretourneerd. Aan het einde van het API-antwoord ziet u de koppeling naar de volgende pagina. Bijvoorbeeld:
"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000
API-eigenschapsdetails
Hier volgen alle eigenschapsdetails die deel uitmaken van het API-antwoord.
Veld | Voorbeeldwaarden | Definitie |
---|---|---|
currencyCode |
USD | De valuta waarin de tarieven zijn gedefinieerd en retourneert prijzen in USD, tenzij opgegeven. |
tierMinimumUnits |
0 | Minimale verbruikseenheden om van de prijs gebruik te maken |
reservationTerm |
1 jaar | Reserveringstermijn : één jaar of drie jaar |
retailPrice |
0.176346 | Prijzen zonder korting |
unitPrice |
0.176346 | |
armRegionName |
westeurope |
Azure Resource Manager regio waar de service beschikbaar is. Deze versie ondersteunt alleen prijzen in de commerciële cloud. |
Location |
EU - west | Azure-datacenter waar de resource wordt geïmplementeerd |
effectiveStartDate |
2020-08-01T00:00:00Z | Optioneel veld. Toont de datum waarop de verkoopprijzen van kracht zijn. |
meterId |
000a794b-bdb0-58be-a0cd-0c3a0f222923 | Unieke id van de resource |
meterName |
F16s Spot | Naam van de meter |
productid |
DZH318Z0BQPS | UniqueID van het product |
skuId |
DZH318Z0BQPS/00TG | UniqueID voor de SKU |
productName |
Windows Virtual Machines FS-serie | Productnaam |
skuName |
F16s Spot | SKU-naam |
serviceName |
Virtual Machines | Naam van de service |
serviceId |
DZH313Z7MMC8 | UniqueID van de service |
serviceFamily |
Compute | Servicefamilie van de SKU |
unitOfMeasure |
1 uur | Hoe het gebruik voor de service wordt gemeten |
Type |
DevTestConsumption | Type meterverbruik. Andere typen zijn Reservation en Consumption . |
isPrimaryMeterRegion |
Waar | Hiermee wordt aangegeven of het metergebied is ingesteld als een primaire meter of niet. Primaire meters worden gebruikt voor kosten en facturering. |
armSkuName |
Standard_F16s | SKU-naam geregistreerd in Azure |
term |
Drie jaar | Termijnlengte voor een Azure-spaarplan, gekoppeld aan savingsPlan informatie. |
API-filters
Filters worden ondersteund voor de volgende velden:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
U voegt de filters toe aan het API-eindpunt, zoals wordt weergegeven in de API-voorbeeldoproepen.
Ondersteunde valuta's
U voegt de valutacode toe aan het API-eindpunt, zoals wordt weergegeven in de API-voorbeeldoproep.
Valutacode | Detail |
---|---|
USD | Amerikaanse dollar |
AUD | Australische dollar |
BRL | Braziliaanse echte |
CAD | Canadese dollar |
CHF | Zwitserse frank |
CNY | Chinese yuan |
DKK | Deense kroon |
EUR | Euro |
GBP | Britse pond |
INR | Indiase roepie |
JPY | Japanse yen |
KRW | Koreaanse won |
NOK | Noorse kroon |
NZD | Nieuw-Zeelandse dollar |
WRIJF | Russische roebel |
SEK | Zweedse kroon |
TWD | Taiwanese dollar |
Programmatisch voorbeeld
De volgende eenvoudige Python-toepassing maakt gebruik van de API om de spotprijzen voor de detailhandel op te vragen van een virtuele machine van de standaard NP20-SKU in de regio VS - zuid-centraal. De toepassing filtert de uitvoer van de query en geeft de gewenste informatie weer in een tabelindeling.
#!/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()
Als u deze code uitvoert, wordt de volgende uitvoer gegenereerd:
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
Volgende stappen
- Meer informatie over andere Cost Management-API's.