Ü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 zu erhalten. Bisher war die einzige Möglichkeit, preise für Azure-Dienste abzurufen, entweder den Azure-Preisrechner oder das Azure-Portal zu verwenden. Diese API bietet Ihnen eine nicht authentifizierte Erfahrung, um Einzelhandelspreise für alle Azure-Dienste zu erhalten. Verwenden Sie die API, um Preise für Azure-Dienste für verschiedene Regionen und verschiedene SKUs zu erkunden. Die programmgesteuerte API kann Ihnen auch dabei helfen, eigene Tools für interne Analysen und Preisvergleiche in SKUs und Regionen zu erstellen.

Wichtig

Die Währung, die Microsoft zum Preis aller Azure-Dienste verwendet, beträgt USD. Die in USD angezeigten Preise sind Microsoft-Einzelhandelspreise. Andere Nicht-USD-Preise, die von der API zurückgegeben werden, beziehen sich auf Ihre Referenz, um Ihnen bei der Schätzung von Budgetausgaben zu helfen.

Vorschauversion

Sie können die neue Version der 2023-01-01-01-Preview-API 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 Metern zurück, einschließlich primärer Meter und nichtprimärer Meter.

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

Die 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.

Primäre Meterfilterung

Sie können Antworten einschränken, um nur primäre Meterpreise abzurufen mit:

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

Die primäre Meterfilterung wird mit 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 die Groß-/Kleinschreibung nicht beachtet. In der 2023-01-01-preview Version und höher wird die Groß-/Kleinschreibung jedoch beachtet.

Zum Beispiel:

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

In früheren API-Versionen funktionierten Virtual Machines und virtual machines.

Jetzt funktioniert nur Virtual Machines.

Unterstützung des Azure-Speicherplans

Wie bereits erwähnt, werden Die Einzelhandelspreise für Azure-Sparpläne nur mit der Vorschauversion (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview) unterstützt. Für die Zähler, die für einen Sparplan berechtigt sind, weisen die Ergebnisse einen entsprechenden Abschnitt für den Sparplan auf. 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 Dokumentation zu Azure-Sparplänen.

Hier ist eine Beispiel-API-Antwort mit Informationen zum 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-Endpunkt

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

API-Beispielaufrufe

Hier sind einige Beispiele:

Beispielaufrufe, die nur für virtuelle Computer gefiltert werden:

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

Beispielaufrufe, die nur für Reservierungen gefiltert sind:

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

Beispielaufrufe, die nach reservierten virtuellen Instanzen gefiltert werden:

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

Beispielaufrufe, die nach Computeressourcen gefiltert werden:

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

Sie können den Währungscode an den API-Endpunkt anfügen, wie im API-Beispielaufruf gezeigt. Eine vollständige Liste der unterstützten Währungen finden Sie unter Unterstützte Währungen.

Beispielaufrufe, die für die Berechnung mit Währung in Euro gefiltert werden:

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

API-Antwortbeispiele

Hier ist eine Beispiel-API-Antwort 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 ist eine Beispiel-API-Antwort mit Reservierungspreisen und Laufzeiten 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 ist 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 Paginierung bereit. Für jede API-Anforderung werden maximal 1.000 Datensätze zurückgegeben. Am Ende der API-Antwort verfügt sie über den Link zur nächsten Seite. Zum Beispiel:

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

API-Eigenschaftsdetails

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

Feld Beispielwerte Definition
currencyCode USD Die Währung, in der Die Kurse definiert sind, und gibt Preise in USD zurück, sofern nicht angegeben.
tierMinimumUnits 0 Mindestverbrauchseinheiten, um den Preis zu nutzen
reservationTerm 1 Jahr Reservierungstermin – ein Jahr oder drei Jahre
retailPrice 0.176346 Microsoft-Einzelhandelspreise ohne Rabatt
unitPrice 0.176346 Identisch mit retailPrice
armRegionName westeurope Azure Resource Manager-Region, in der der Dienst verfügbar ist. Diese Version unterstützt nur Preise für Commercial Cloud.
Location EU-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 des Zählers
productid DZH318Z0BQPS UniqueID des Produkts
skuId DZH318Z0BQPS/00TG UniqueID für die SKU
productName Virtuelle Computer FS-Serie Windows Produktname
skuName F16s Spot SKU-Name
serviceName Virtuelle Computer Name des Diensts
serviceId DZH313Z7MMC8 UniqueID des Diensts
serviceFamily Berechnen Dienstfamilie der SKU
unitOfMeasure 1 Stunde Wie die Nutzung für den Dienst gemessen wird
Type DevTestConsumption Meterverbrauchstyp. Andere Typen sind Reservation und Consumption.
isPrimaryMeterRegion STIMMT Gibt an, ob der Meterbereich als primärer Zähler festgelegt ist oder nicht. Primäre Zähler werden für Gebühren und Abrechnungen verwendet.
armSkuName Standard_F16s In Azure registrierter SKU-Name
term 3 Jahre Laufzeitdauer für einen Azure-Sparplan, der savingsPlan Informationen zugeordnet 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 ServiceFamily-Werte

Die folgenden Informationen sind die Liste der unterstützten serviceFamily Werte. Die Informationen können geändert werden.

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

Programmgesteuertes Beispiel

Die folgende einfache Python-Anwendung verwendet die API, um die Verkaufsplatzpreise eines virtuellen Computers der standard-NP20-SKU in der Region Süd-Zentral-USA 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()

Durch Ausführen dieses Codes 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