Delen via


Overzicht van azure-retailprijzen

Azure-klanten zijn op zoek naar een programmatische manier om verkoopprijzen voor alle Azure-services op te halen. U kunt nu de API voor prijzen voor detailhandelstarieven gebruiken om de detailhandelprijzen voor alle Azure-services op te halen. Voorheen was het alleen mogelijk om prijzen voor Azure-services op te halen door de Azure-prijscalculator te gebruiken of de Azure-portal te gebruiken. Deze API biedt u een niet-geverifieerde ervaring voor het verkrijgen van retailtarieven voor alle Azure-services. Gebruik de API om prijzen voor Azure-services te verkennen voor verschillende regio's en verschillende SKU's. Met de programmatische API kunt u ook uw eigen hulpprogramma's maken voor interne analyse en prijsvergelijking tussen SKU's en regio's.

Belangrijk

De valuta die Microsoft gebruikt voor de prijs van alle Azure-services is USD. De prijzen die worden weergegeven in de valuta van USD zijn de detailhandelprijzen van Microsoft. Andere niet-USD-prijzen die door de API worden geretourneerd, zijn ter referentie om u te helpen bij het schatten van budgetkosten.

Preview-versie

U kunt de nieuwe API-versie 2023-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.

Als u https://prices.azure.com/api/retail/prices 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 met de https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview versie.

Filteren van primaire meter

U kunt antwoorden beperken om alleen primaire meterprijzen op te halen met:

https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'

Primaire meterfiltering wordt ondersteund met 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 werkten Virtual Machines en virtual machines.

Nu werkt alleen Virtual Machines.

Ondersteuning voor Azure-besparingsplan

Zoals eerder vermeld, worden de retailprijzen van Azure-besparingen 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 een spaarplan doorvoert, krijgt u een goedkopere prijs dan de OnDemand prijs. Zie documentatie voor Azure-spaarplannenvoor 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'

Voorbeelden van aanroepen die zijn gefilterd voor rekenresources:

https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'

U kunt de valutacode toevoegen aan het API-eindpunt, zoals wordt weergegeven in de API-voorbeeldoproep. Zie Ondersteunde valuta'svoor een volledige lijst met ondersteunde valuta's.

Voorbeeld van aanroepen 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-API-antwoord met reserveringsprijzen en term 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 valuta die geen USD is.

{
  "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"
}

Paginering van API-antwoorden

Het API-antwoord biedt paginering. Voor elke API-aanvraag worden maximaal 1000 records geretourneerd. Aan het einde van het API-antwoord heeft deze 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 ziet u alle details van de eigenschap die deel uitmaken van het API-antwoord.

Veld Voorbeeldwaarden Definitie
currencyCode USD De valuta waarin tarieven worden gedefinieerd en retourneert prijzen in USD, tenzij opgegeven.
tierMinimumUnits 0 Minimumeenheden van verbruik om de prijs te benutten
reservationTerm 1 jaar Reserveringstermijn – één jaar of drie jaar
retailPrice 0.176346 Microsoft Retail Prijzen zonder korting
unitPrice 0.176346 Hetzelfde als retailPrice
armRegionName westeurope Azure Resource Manager-regio waar de service beschikbaar is. Deze versie ondersteunt alleen prijzen in Commercial Cloud.
Location EU West Azure-datacenter waar de resource wordt geïmplementeerd
effectiveStartDate 2020-08-01T00:00:00Z Optioneel veld. Geeft de datum weer 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 Virtuele machines FS-serie Windows Productnaam
skuName F16s Spot SKU-naam
serviceName Virtuele machines Naam van de service
serviceId DZH313Z7MMC8 UniqueID van de service
serviceFamily Berekenen Servicefamilie van de SKU
unitOfMeasure 1 uur Hoe het gebruik wordt gemeten voor de service
Type DevTestConsumption Type meterverbruik. Andere typen zijn Reservation en Consumption.
isPrimaryMeterRegion Waar Geeft aan 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 3 jaar Termlengte 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 serviceFamily-waarden

De volgende informatie is de lijst met ondersteunde serviceFamily waarden. De informatie kan worden gewijzigd.

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

Programmatisch voorbeeld

De volgende eenvoudige Python-toepassing maakt gebruik van de API om een query uit te voeren op de prijzen voor de detailhandelsspot 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