Übersicht über Azure-Einzelhandelspreise

Azure-Kunden haben nach einer programmgesteuerten Möglichkeit gesucht, einzelhandelspreise für alle Azure-Dienste abzurufen. Jetzt können Sie die Api für Einzelhandelspreise verwenden, um Einzelhandelspreise für alle Azure-Dienste abzurufen. Bisher konnten Sie Preise für Azure-Dienste nur mithilfe des Azure-Preisrechners oder über das Azure-Portal abrufen. Diese API bietet Ihnen eine nicht authentifizierte Oberfläche zum Abrufen von Einzelhandelspreisen für alle Azure-Dienste. Verwenden Sie die API, wenn Sie die Preise für Azure-Dienste für verschiedene Regionen und SKUs untersuchen möchten. Mit der programmgesteuerten API können Sie auch Ihre eigenen Tools für interne Analysen und Preisvergleiche zwischen SKUs und Regionen erstellen.

Wichtig

Die Währung, die Microsoft zum Preis aller Azure-Dienste verwendet, ist USD. In USD angezeigte Preise sind Microsoft-Einzelhandelspreise. Andere Nicht-USD-Preise, die von der API zurückgegeben werden, dienen Ihrer Referenz, um Ihnen bei der Schätzung der Budgetausgaben zu helfen.

Vorschauversion

Sie können die neue API-Version 2023-01-01-preview unter https://prices.azure.com/api/retail/prices?api-version=2023-01-01-previewverwenden. Die Vorschauversion ist abwärtskompatibel mit früheren API-Versionen. Die URL gibt den vollständigen Satz von Verbrauchseinheiten zurück, einschließlich primärer und nicht primärer Verbrauchseinheiten.

Die Verwendung von oder https://prices.azure.com/api/retail/priceshttps://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview gibt den vollständigen Satz von Verbrauchseinheiten zurück.

Tarife für Sparpläne sind nur mit der https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview Version verfügbar.

Filtern der primären Verbrauchseinheit

Sie können Antworten auf das Abrufen der Preise für primäre Verbrauchseinheiten einschränken mit:

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

Die Primäre Verbrauchseinheitsfilterung wird von 2021-10-01 und höheren API-Versionen unterstützt, einschließlich 2023-01-01.

Beim Filterwert wird die Groß-/Kleinschreibung beachtet.

In früheren API-Versionen wurde beim Filterwert die Groß-/Kleinschreibung nicht beachtet. In der 2023-01-01-preview Version und höher wird bei dem Wert jedoch die Groß-/Kleinschreibung beachtet.

Beispiel:

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' Funktioniert.

In früheren API-Versionen Virtual Machinesvirtual machines und funktionierte.

Jetzt funktioniert nur Virtual Machines noch.

Unterstützung für Azure-Sparpläne

Wie bereits erwähnt, werden die Verkaufspreise des Azure-Sparplans nur mit der Vorschauversion (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview) unterstützt. Für die Verbrauchseinheiten, die für einen Sparplan in Frage kommen, verfügen die Ergebnisse über einen entsprechenden Abschnitt für den Sparplan. Wenn Sie sich für einen Sparplan verpflichten, erhalten Sie einen günstigeren Preis als der OnDemand Preis. Weitere Informationen zu Azure-Sparplänen finden Sie in der Dokumentation zu Azure-Sparplänen.

Hier sehen Sie ein Beispiel für eine API-Antwort mit Sparplaninformationen:


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

https://prices.azure.com/api/retail/prices

API-Beispielaufrufe

Hier einige Beispiele:

Beispielaufrufe, die nur nach virtuellen Computern gefiltert sind:

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'

Beispielaufrufe, die nur nach Reservierungen gefiltert sind:

https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'

Beispielaufrufe, die nach reservierten instance virtuellen Computern gefiltert sind:

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'

Beispielaufrufe, die nach Computeressourcen gefiltert sind:

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

Beispielaufrufe, die nach Compute mit Der Währung in Euro gefiltert sind:

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

API-Antwortbeispiele

Hier sehen Sie eine API-Beispielantwort ohne Reservierungspreise.

{
            "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 sehen Sie eine API-Beispielantwort mit Reservierungspreisen und Begriff in der Antwort.

{
            "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 sehen Sie eine Beispielantwort mit einer Nicht-USD-Währung.

{
  "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-Antwort paginierung

Die API-Antwort stellt eine Paginierung bereit. Für jede API-Anforderung werden maximal 1.000 Datensätze zurückgegeben. Am Ende der API-Antwort befindet sich der Link zur nächsten Seite. Beispiel:

"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000

API-Eigenschaftendetails

Hier sind alle Eigenschaftendetails aufgeführt, die Teil der API-Antwort sind.

Feld Beispielwerte Definition
currencyCode USD Die Währung, in der die Kurse definiert sind und die Preise in USD zurückgibt, sofern nicht angegeben.
tierMinimumUnits 0 Mindestverbrauchseinheiten zum Nutzen des Preises
reservationTerm 1 Jahr Reservierungslaufzeit – ein Jahr oder drei Jahre
retailPrice 0.176346 Preise ohne Rabatt
unitPrice 0.176346
armRegionName westeurope Azure Resource Manager Region, in der der Dienst verfügbar ist. Diese Version unterstützt nur Preise in der kommerziellen Cloud.
Location Europa, Westen Azure-Rechenzentrum, in dem die Ressource bereitgestellt wird
effectiveStartDate 2020-08-01T00:00:00Z Optionales Feld. Zeigt das Datum an, an dem die Verkaufspreise wirksam sind.
meterId 000a794b-bdb0-58be-a0cd-0c3a0f222923 Eindeutiger Bezeichner der Ressource
meterName F16s Spot Name der Verbrauchseinheit
productid DZH318Z0BQPS UniqueID des Produkts
skuId DZH318Z0BQPS/00TG UniqueID für die SKU
productName Windows der Virtual Machines FS-Serie Produktname
skuName F16s Spot SKU-Name
serviceName Virtual Machines Name des Diensts
serviceId DZH313Z7MMC8 UniqueID des Diensts
serviceFamily Compute Dienstfamilie der SKU
unitOfMeasure 1 Stunde Wie die Nutzung für den Dienst gemessen wird
Type DevTestConsumption Verbrauchstyp der Verbrauchseinheit. Andere Typen sind Reservation und Consumption.
isPrimaryMeterRegion True Gibt an, ob der Verbrauchseinheitsbereich als primäre Verbrauchseinheit festgelegt ist. Primäre Verbrauchseinheiten werden für Gebühren und Abrechnung verwendet.
armSkuName Standard_F16s In Azure registrierte SKU-Name
term 3 Jahre Laufzeitlänge für einen Azure-Sparplan, der Informationen zugeordnet savingsPlan ist.

API-Filter

Filter werden für die folgenden Felder unterstützt:

  • armRegionName
  • Location
  • meterId
  • meterName
  • productid
  • skuId
  • productName
  • skuName
  • serviceName
  • serviceId
  • serviceFamily
  • priceType
  • armSkuName

Sie fügen die Filter an den API-Endpunkt an, wie in den API-Beispielaufrufen gezeigt.

Unterstützte Währungen

Sie fügen den Währungscode an den API-Endpunkt an, wie im API-Beispielaufruf gezeigt.

Currency code Detail
USD US-Dollar
AUD Australischer Dollar
BRL Brasilianischer Real
CAD Kanadischer Dollar
CHF Schweizer Franken
CNY Chinesischer Yuan
DKK Dänische Krone
EUR Euro
GBP Britisches Pfund
INR Indische Rupien
JPY Japanischer Yen
KRW Koreanisch gewonnen
NOK Norwegische Krone
NZD Neuseeländischer Dollar
REIBEN Russischer Rubel
SEK Schwedische Krone
TWD Taiwan-Dollar

Programmgesteuertes Beispiel

Die folgende einfache Python-Anwendung verwendet die API, um die Einzelhandelspreise für einen virtuellen Computer der NP20-Standard-SKU in der Region "USA, Süden-Mitte" abzufragen. Die Anwendung filtert die Ausgabe der Abfrage und stellt die gewünschten Informationen in einem Tabellenformat dar.

#!/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()

Wenn Sie diesen Code ausführen, wird die folgende Ausgabe erzeugt:

+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| 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ächste Schritte