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 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 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żne
Waluta używana przez firmę Microsoft do wyceny wszystkich usług platformy Azure to USD. Ceny wyświetlane w walucie USD to ceny detaliczne firmy Microsoft. Inne ceny inne niż USD zwrócone przez interfejs API dotyczą Twoich odwołań, 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 metody 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 https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
wersji.
Filtrowanie miernika podstawowego
Możesz ograniczyć odpowiedzi, aby pobrać tylko podstawowe ceny mierników za pomocą:
https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'
Podstawowe filtrowanie mierników jest obsługiwane przez 2021-10-01
nowsze wersje interfejsu API, w tym 2023-01-01
.
Uwzględniana jest wielkość liter filtru
W poprzednich wersjach interfejsu API wartość filtru nie uwzględniała wielkości liter. Jednak w wersji i nowszej 2023-01-01-preview
jest uwzględniana wielkość liter.
Na przykład:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Działa.
We wcześniejszych wersjach interfejsu Virtual Machines
API i virtual machines
działało.
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 tańszą cenę niż OnDemand
cena. Aby uzyskać więcej informacji na temat planów oszczędnościowych 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'
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 zwraca się maksymalnie 1000 rekordów. Na końcu odpowiedzi interfejsu API zawiera 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, które są 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 bez rabatu |
unitPrice |
0.176346 | |
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ę, kiedy ceny detaliczne są skuteczne. |
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 |
Virtual Machines FS Series Windows | Nazwa produktu |
skuName |
Punkt F16s | Nazwa jednostki SKU |
serviceName |
Virtual Machines | Nazwa usługi |
serviceId |
DZH313Z7MMC8 | UniqueID usługi |
serviceFamily |
Compute | Rodzina usług jednostki SKU |
unitOfMeasure |
1 godzina | Jak użycie jest mierzone dla usługi |
Type |
DevTestConsumption | Typ zużycia miernika. Inne typy to Reservation i Consumption . |
isPrimaryMeterRegion |
Prawda | Wskazuje, czy region miernika jest ustawiony jako miernik podstawowy, czy nie. Podstawowe mierniki są używane do naliczania opłat i rozliczeń. |
armSkuName |
Standardowa_F16s | Nazwa jednostki SKU zarejestrowana na platformie Azure |
term |
3 lata | Czas trwania planu oszczędności platformy Azure skojarzony z savingsPlan informacjami. |
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 waluty
Kod waluty jest dołączany do punktu końcowego interfejsu API, jak pokazano w przykładowym wywołaniu interfejsu API.
Kod waluty | Szczegóły |
---|---|
USD | Dolar amerykański |
AUD | Dolar australijski |
BRL | Real brazylijski |
CAD | Dolar kanadyjski |
CHF | Szwajcarski |
CNY | Juan chiński |
DKK | Duńska |
EUR | Euro |
GBP | Funt brytyjski |
INR | Rupia indyjska |
JPY | Jeny japońskie |
KRW | Wygrana koreańska |
NOK | Norweska |
NZD | Dolar nowozelandzki |
RUB | Rubel |
SEK | Szwedzka |
TWD | Dolar tajwański |
Przykład programowy
Poniższa prosta aplikacja w języku 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
Następne kroki
- Dowiedz się więcej o innych interfejsach API usługi Cost Management.