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 Machinesvirtual 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