Megosztás a következőn keresztül:


Az Azure Kiskereskedelmi árak áttekintése

Az Azure-ügyfelek programozott módszert kerestek az összes Azure-szolgáltatás kiskereskedelmi árainak lekérésére. Most a Kiskereskedelmi árak API-val lekérheti az összes Azure-szolgáltatás kiskereskedelmi árait. Korábban az Azure-szolgáltatások árainak lekérésének egyetlen módja az Azure-díjkalkulátor használata vagy az Azure Portal használata volt. Ez az API nem hitelesített élményt nyújt az összes Azure-szolgáltatás kiskereskedelmi díjszabásának lekéréséhez. Az API használatával megismerheti az Azure-szolgáltatások különböző régiókra és termékváltozatokra vonatkozó árait. A programozott API segítségével saját eszközöket hozhat létre a belső elemzéshez és az árak összehasonlításához a termékváltozatok és régiók között.

Fontos

A Microsoft által az összes Azure-szolgáltatás árára használt pénznem usd. Az USD pénznemben megjelenített árak a Microsoft kiskereskedelmi árai. Az API által visszaadott egyéb nem USD-árak az Ön számára nyújtanak segítséget a költségvetési költségek becsléséhez.

Előzetes verzió

Az új 2023-01-01-preview API-verziót a https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. Az előzetes verzió visszamenőlegesen kompatibilis a korábbi API-verziókkal. Az URL-cím a mérők teljes készletét adja vissza, beleértve az elsődleges és a nemprimáris mérőket is.

Az https://prices.azure.com/api/retail/prices vagy https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview használatával a mérők teljes készletét adja vissza.

A megtakarítási csomagok díjszabása csak a https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview verzióval érhető el.

Elsődleges mérő szűrése

A válaszok korlátozásával csak az elsődleges fogyasztásmérők árait kérdezheti le a következőkkel:

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

Az elsődleges fogyasztásmérő-szűrést 2021-10-01 és újabb API-verziók támogatják, beleértve a 2023-01-01.

A szűrő értéke megkülönbözteti a kis- és nagybetűk értékét

A korábbi API-verziókban a szűrő értéke nem volt megkülönböztetett a kis- és nagybetűk között. A 2023-01-01-preview és újabb verziókban azonban az érték megkülönbözteti a kis- és nagybetűk értékét.

Például:

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' működik.

A korábbi API-verziókban Virtual Machines és virtual machines működött.

Most csak Virtual Machines működik.

Az Azure-mentési csomag támogatása

Ahogy korábban említettük, az Azure-megtakarítási csomag kiskereskedelmi árai csak az előzetes verzió (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview) esetében támogatottak. A megtakarítási tervre jogosult mérők esetében az eredményeknek van egy megfelelő szakasza a megtakarítási tervhez. Amikor elkötelezi magát egy megtakarítási terv mellett, a OnDemand árnál olcsóbb árat kap. Az Azure-megtakarítási csomagokkal kapcsolatos további információkért tekintse meg Azure-megtakarítási csomagok dokumentációját.

Íme egy példa API-válasz a megtakarítási terv adataival:


        {
            "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-végpont

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

API-mintahívások

Íme néhány példa:

Csak virtuális gépekre szűrt példahívások:

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

Csak foglalásokra szűrt példahívások:

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

Fenntartott példány virtuális gépeire szűrt példahívások:

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

Számítási erőforrásokra szűrt példahívások:

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

A pénznemkódot hozzáfűzheti az API-végponthoz az API-mintahívásban látható módon. A támogatott pénznemek teljes listáját támogatott pénznemekcímű témakörben találja.

Példahívások a számításhoz euróban megadott pénznemmel szűrt hívásokra:

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

API-válasz példák

Íme egy minta API-válasz foglalási árak nélkül.

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

Íme egy minta API-válasz foglalási árakkal és kifejezéssel a válaszban.

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

Az alábbiakban egy nem USD-pénznemmel rendelkező mintaválaszt talál.

{
  "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-válaszok lapozása

Az API-válasz lapozást biztosít. Minden API-kéréshez legfeljebb 1000 rekordot ad vissza a rendszer. Az API-válasz végén a következő oldalra mutató hivatkozás található. Például:

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

API-tulajdonság részletei

Íme az API-válasz részét képező összes tulajdonságrészlet.

Mező Példaértékek Definíció
currencyCode USD Az a pénznem, amelyben az árfolyamok meg vannak határozva, és az árakat USD-ben adja vissza, kivéve, ha meg van adva.
tierMinimumUnits 0 Minimális fogyasztási egységek az ár kihasználása érdekében
reservationTerm 1 év Foglalás időtartama – egy vagy három év
retailPrice 0.176346 Microsoft Kiskereskedelmi árak kedvezmény nélkül
unitPrice 0.176346 Ugyanaz, mint retailPrice
armRegionName westeurope Azure Resource Manager-régió, ahol a szolgáltatás elérhető. Ez a verzió csak a kereskedelmi felhő árait támogatja.
Location NYUGAT-EU Azure-adatközpont, ahol az erőforrás üzembe van helyezve
effectiveStartDate 2020-08-01T00:00:00Z Nem kötelező mező. A kiskereskedelmi árak hatályba lépésének dátumát jeleníti meg.
meterId 000a794b-bdb0-58be-a0cd-0c3a0f222923 Az erőforrás egyedi azonosítója
meterName F16s Spot A mérő neve
productid DZH318Z0BQPS A termék egyedi azonosítója
skuId DZH318Z0BQPS/00TG Egyedi azonosító a termékváltozathoz
productName Virtual Machines FS Series Windows Terméknév
skuName F16s Spot Termékváltozat neve
serviceName Virtuális gépek A szolgáltatás neve
serviceId DZH313Z7MMC8 A szolgáltatás egyedi azonosítója
serviceFamily Számlál A termékváltozat szolgáltatáscsaládja
unitOfMeasure 1 óra A használat mérése a szolgáltatáshoz
Type DevTestConsumption Fogyasztásmérő típusa. A többi típus Reservation és Consumption.
isPrimaryMeterRegion Igaz Azt jelzi, hogy a mérőterület elsődleges mérőként van-e beállítva. Az elsődleges mérők a díjakhoz és a számlázáshoz használatosak.
armSkuName Standard_F16s Az Azure-ban regisztrált termékváltozat neve
term 3 év Egy Azure-beli megtakarítási csomag kifejezéshossza, amely savingsPlan információkhoz van társítva.

API-szűrők

A szűrők a következő mezőkhöz támogatottak:

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

A szűrőket hozzáfűzi az API-végponthoz, ahogy az az API-mintahívásokban is látható.

Támogatott serviceFamily értékek

Az alábbi információk a támogatott serviceFamily értékek listáját ismertetik. Az információk változhatnak.

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

Programozott példa

Az alábbi egyszerű Python-alkalmazás az API használatával kérdezi le a standard NP20 termékváltozatú virtuális gép kiskereskedelmi díjszabását az USA déli középső régiójában. Az alkalmazás szűri a lekérdezés kimenetét, és táblázatformátumban jeleníti meg a kívánt információkat.

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

A kód futtatása a következő kimenetet eredményezi:

+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| 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         |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+

Következő lépések