Omówienie cen detalicznych platformy Azure
Klienci platformy Azure szukają programowego sposobu pobierania cen detalicznych dla wszystkich usług platformy Azure. Teraz możesz użyć interfejsu API cen stawek detalicznych, aby uzyskać ceny detaliczne dla wszystkich usług platformy Azure. Wcześniej jedynym sposobem pobierania cen usług platformy Azure było użycie kalkulatora cen platformy Azure lub użycie witryny Azure Portal. Ten interfejs API zapewnia nieuwierzytelnione środowisko uzyskiwania stawek detalicznych dla wszystkich usług platformy Azure. Użyj interfejsu API, aby zapoznać się z cenami usług platformy Azure w różnych regionach i różnych jednostkach SKU. Programowy interfejs API może również pomóc w tworzeniu własnych narzędzi do wewnętrznej analizy i porównywania cen w jednostkach SKU i regionach.
Ważny
Waluta używana przez firmę Microsoft do wyceny wszystkich usług platformy Azure to USD. Ceny pokazane w walucie USD to ceny detaliczne firmy Microsoft. Inne ceny inne niż USD zwrócone przez interfejs API są przeznaczone dla Ciebie, aby ułatwić oszacowanie wydatków budżetowych.
Wersja zapoznawcza
Możesz użyć nowej wersji interfejsu API 2023-01-01-preview pod adresem https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. Wersja zapoznawcza jest zgodna z poprzednimi wersjami interfejsu API. Adres URL zwraca pełny zestaw mierników, w tym mierniki podstawowe i mierniki nieprimary.
Użycie https://prices.azure.com/api/retail/prices lub https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview zwraca pełny zestaw mierników.
Stawki planów oszczędnościowych są dostępne tylko w wersji https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
.
Podstawowe filtrowanie mierników
Odpowiedzi na pobieranie tylko podstawowych cen mierników można ograniczyć za pomocą:
https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'
Podstawowe filtrowanie mierników jest obsługiwane w przypadku 2021-10-01
i nowszych wersji interfejsu API, w tym 2023-01-01
.
W wartości filtru jest uwzględniana wielkość liter
W poprzednich wersjach interfejsu API wartość filtru nie uwzględniała wielkości liter. Jednak w wersji 2023-01-01-preview
i nowszej wartość jest uwzględniana w wielkości liter.
Na przykład:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
działa.
We wcześniejszych wersjach interfejsu API Virtual Machines
i virtual machines
działały.
Teraz działa tylko Virtual Machines
.
Pomoc techniczna dotycząca zapisywania planu platformy Azure
Jak wspomniano wcześniej, ceny detaliczne planu oszczędności platformy Azure są obsługiwane tylko w wersji zapoznawczej (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). W przypadku mierników kwalifikujących się do planu oszczędnościowego wyniki mają odpowiednią sekcję dla planu oszczędnościowego. Gdy zobowiązujesz się do planu oszczędnościowego, uzyskasz niższą cenę niż cena OnDemand
. Aby uzyskać więcej informacji na temat planów oszczędności platformy Azure, zobacz dokumentację planów oszczędnościowych platformy Azure .
Oto przykładowa odpowiedź interfejsu API z informacjami o planie oszczędności:
{
"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"
}
]
},
Punkt końcowy interfejsu API
https://prices.azure.com/api/retail/prices
Przykładowe wywołania interfejsu API
Oto kilka przykładów:
Przykładowe wywołania filtrowane tylko dla maszyn wirtualnych:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Przykładowe wywołania filtrowane tylko dla rezerwacji:
https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'
Przykładowe wywołania filtrowane dla maszyn wirtualnych wystąpień zarezerwowanych:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'
Przykładowe wywołania filtrowane dla zasobów obliczeniowych:
https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'
Kod waluty można dołączyć do punktu końcowego interfejsu API, jak pokazano w przykładowym wywołaniu interfejsu API. Aby uzyskać pełną listę obsługiwanych walut, zobacz Obsługiwane waluty.
Przykładowe wywołania filtrowane pod kątem obliczeń z walutą w euro:
https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'
Przykłady odpowiedzi interfejsu API
Oto przykładowa odpowiedź interfejsu API bez cen rezerwacji.
{
"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"
}
Oto przykładowa odpowiedź interfejsu API z cenami rezerwacji i terminem w odpowiedzi.
{
"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"
}
Oto przykładowa odpowiedź z walutą inną niż USD.
{
"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"
}
Stronicowanie odpowiedzi interfejsu API
Odpowiedź interfejsu API zapewnia stronicowanie. Dla każdego żądania interfejsu API zwracanych jest maksymalnie 1000 rekordów. Na końcu odpowiedzi interfejsu API ma link do następnej strony. Na przykład:
"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000
Szczegóły właściwości interfejsu API
Oto wszystkie szczegóły właściwości będące częścią odpowiedzi interfejsu API.
Pole | Przykładowe wartości | Definicja |
---|---|---|
currencyCode |
USD | Waluta, w której są zdefiniowane kursy i zwraca ceny w USD, chyba że określono. |
tierMinimumUnits |
0 | Minimalna liczba jednostek zużycia w celu skorzystania z ceny |
reservationTerm |
1 rok | Okres rezerwacji — rok lub trzy lata |
retailPrice |
0.176346 | Ceny detaliczne firmy Microsoft bez rabatu |
unitPrice |
0.176346 | Tak samo jak retailPrice |
armRegionName |
westeurope |
Region usługi Azure Resource Manager, w którym jest dostępna usługa. Ta wersja obsługuje tylko ceny w chmurze komercyjnej. |
Location |
Europa Zachodnia | Centrum danych platformy Azure, w którym wdrożono zasób |
effectiveStartDate |
2020-08-01T00:00:00Z | Pole opcjonalne. Pokazuje datę wejścia w życie cen detalicznych. |
meterId |
000a794b-bdb0-58be-a0cd-0c3a0f222923 | Unikatowy identyfikator zasobu |
meterName |
Punkt F16s | Nazwa miernika |
productid |
DZH318Z0BQPS | UniqueID produktu |
skuId |
DZH318Z0BQPS/00TG | UniqueID dla jednostki SKU |
productName |
Maszyny wirtualne z serii FS — Windows | Nazwa produktu |
skuName |
Punkt F16s | Nazwa jednostki SKU |
serviceName |
Maszyny wirtualne | Nazwa usługi |
serviceId |
DZH313Z7MMC8 | UniqueID usługi |
serviceFamily |
Liczyć | Rodzina usług jednostki SKU |
unitOfMeasure |
1 godzina | Jak jest mierzone użycie usługi |
Type |
DevTestConsumption | Typ zużycia miernika. Inne typy to Reservation i Consumption . |
isPrimaryMeterRegion |
Prawdziwy | Wskazuje, czy region miernika jest ustawiony jako miernik podstawowy, czy nie. Podstawowe mierniki są używane do naliczania opłat i rozliczeń. |
armSkuName |
Standard_F16s | Nazwa jednostki SKU zarejestrowana na platformie Azure |
term |
3 lata | Długość terminu planu oszczędności platformy Azure skojarzonego z informacjami o savingsPlan . |
Filtry interfejsu API
Filtry są obsługiwane w następujących polach:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
Filtry są dołączane do punktu końcowego interfejsu API, jak pokazano w przykładowych wywołaniach interfejsu API.
Obsługiwane wartości serviceFamily
Poniższe informacje to lista obsługiwanych wartości serviceFamily
. Informacje mogą ulec zmianie.
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
Przykład programowy
Poniższa prosta aplikacja języka Python używa interfejsu API do wykonywania zapytań dotyczących cen detalicznych typu spot maszyny wirtualnej standardowej jednostki SKU NP20 w regionie Południowo-środkowe stany USA. Aplikacja filtruje dane wyjściowe zapytania i przedstawia żądane informacje w formacie tabeli.
#!/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()
Uruchomienie tego kodu powoduje wygenerowanie następujących danych wyjściowych:
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+