Vue d’ensemble des prix de vente au détail Azure
Les clients Azure recherchent un moyen programmatique de récupérer les prix de détail de tous les services Azure. Vous pouvez maintenant utiliser l’API Prix de vente au détail pour obtenir les prix de détail de tous les services Azure. Auparavant, le seul moyen de récupérer les prix pour les services Azure consistait à utiliser la calculatrice de prix Azure ou le portail Azure. Cette API vous offre une expérience non authentifiée pour obtenir les tarifs de vente au détail relatifs à tous les services Azure. Utilisez l’API pour explorer les prix des services Azure par rapport à différentes régions et différentes références SKU. L’API programmatique peut également vous aider à créer vos propres outils d’analyse interne et de comparaison des prix entre les références SKU et les régions.
Important
La devise utilisée par Microsoft pour le prix de tous les services Azure est USD. Les prix affichés en usd sont les prix de détail Microsoft. D’autres prix autres que l’USD retournés par l’API sont à titre de référence pour vous aider à estimer les dépenses budgétaires.
Version préliminaire
Vous pouvez utiliser la nouvelle version de l’API 2023-01-preview à l’adresse https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. La préversion est rétrocompatible avec les versions d’API précédentes. L’URL retourne l’ensemble complet de compteurs, y compris les compteurs principaux et les compteurs non primaires.
À l’aide https://prices.azure.com/api/retail/prices de ou https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview retourne l’ensemble complet de compteurs.
Les tarifs des plans d’économies ne sont disponibles qu’avec la https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
version.
Filtrage du compteur principal
Vous pouvez limiter les réponses pour récupérer uniquement les prix des compteurs principaux avec :
https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'
Le filtrage des compteurs principaux est pris en charge par et les 2021-10-01
versions ultérieures de l’API, y compris 2023-01-01
.
La valeur du filtre respecte la casse
Dans les versions précédentes de l’API, la valeur du filtre ne respectait pas la casse. Toutefois, dans la 2023-01-01-preview
version et les versions ultérieures, la valeur respecte la casse.
Par exemple :
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Fonctionne.
Dans les versions antérieures de l’API, Virtual Machines
et virtual machines
fonctionnait.
Maintenant, ne fonctionne que Virtual Machines
.
Prise en charge du plan d’enregistrement Azure
Comme mentionné précédemment, les prix de détail du plan d’économies Azure sont uniquement pris en charge avec la version préliminaire (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). Pour les compteurs éligibles à un plan d’économies, les résultats ont une section correspondante pour le plan d’économies. Lorsque vous vous engagez sur un plan d’économies, vous obtenez un prix moins cher que le OnDemand
prix. Pour plus d’informations sur les plans d’économies Azure, consultez la documentation relative aux plans d’économies Azure.
Voici un exemple de réponse d’API avec des informations sur le plan d’économies :
{
"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"
}
]
},
Point de terminaison d’API
https://prices.azure.com/api/retail/prices
Exemples d’appels d’API
Voici quelques exemples :
Exemples d’appels filtrés pour les machines virtuelles uniquement :
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Exemples d’appels filtrés pour les réservations uniquement :
https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'
Exemples d’appels filtrés pour les machines virtuelles réservées instance :
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'
Exemples d’appels filtrés pour les ressources de calcul :
https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'
Exemples d’appels filtrés pour le calcul avec la devise en euro :
https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'
Exemples de réponse d’API
Voici un exemple de réponse d’API, sans prix de réservation.
{
"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"
}
Voici un exemple de réponse d’API avec les prix des réservations et le terme dans la réponse.
{
"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"
}
Voici un exemple de réponse avec une devise autre que l’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"
}
Pagination de la réponse de l’API
La réponse de l’API fournit une pagination. Pour chaque requête d’API, un maximum de 1 000 enregistrements sont retournés. À la fin de la réponse de l’API, elle a le lien vers la page suivante. Par exemple :
"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000
Détails de la propriété API
Voici tous les détails de la propriété qui font partie de la réponse de l’API.
Champ | Exemples de valeurs | Définition |
---|---|---|
currencyCode |
USD | Devise dans laquelle les taux sont définis et retourne les prix en USD, sauf indication contraire. |
tierMinimumUnits |
0 | Unités minimales de consommation pour bénéficier du prix |
reservationTerm |
1 an | Durée de réservation : un an ou trois ans |
retailPrice |
0.176346 | Prix sans remise |
unitPrice |
0.176346 | |
armRegionName |
westeurope |
Azure Resource Manager région où le service est disponible. Cette version prend uniquement en charge les prix sur le cloud commercial. |
Location |
Europe Ouest | Centre de données Azure où la ressource est déployée |
effectiveStartDate |
2020-08-01T00 :00 :00Z | Champ facultatif. Affiche la date d’entrée en vigueur des prix de détail. |
meterId |
000a794b-bdb0-58be-a0cd-0c3a0f222923 | Identificateur unique de la ressource |
meterName |
F16s Spot | Nom du compteur |
productid |
DZH318Z0BQPS | UniqueID du produit |
skuId |
DZH318Z0BQPS/00TG | UniqueID pour la référence SKU |
productName |
Machines Virtuelles série FS Windows | Nom du produit |
skuName |
F16s Spot | Nom de la référence (SKU) |
serviceName |
Machines Virtuelles | Nom du service |
serviceId |
DZH313Z7MMC8 | UniqueID du service |
serviceFamily |
Compute | Famille de services de la référence SKU |
unitOfMeasure |
1 heure | Comment l’utilisation est mesurée pour le service |
Type |
DevTestConsumption | Type de consommation du compteur. Les autres types sont Reservation et Consumption . |
isPrimaryMeterRegion |
True | Indique si la région du compteur est définie en tant que compteur principal ou non. Les compteurs principaux sont utilisés pour les frais et la facturation. |
armSkuName |
Standard_F16s | Nom de référence SKU inscrit dans Azure |
term |
3 ans | Durée d’un plan d’économies Azure, associée savingsPlan à des informations. |
Filtres d’API
Les filtres sont pris en charge pour les champs suivants :
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
Vous ajoutez les filtres au point de terminaison d’API, comme indiqué dans les exemples d’appels d’API.
Devises prises en charge
Vous ajoutez le code monétaire au point de terminaison de l’API, comme indiqué dans l’exemple d’appel d’API.
Code devise | Détail |
---|---|
USD | Dollar américain |
AUD | Dollar australien |
BRL | Real brésilien |
CAD | Dollar canadien |
CHF | Franc suisse |
CNY | Yuan chinois |
DKK | Couronne danoise |
EUR | Euro |
GBP | Livre britannique |
INR | Roupie indienne |
JPY | Yen japonais |
KRW | Coréen a gagné |
NOK | Couronne norvégienne |
NZD | Dollar néo-zélandais |
FROTTER | Rouble russe |
SEK | Couronne suédoise |
TWD | Dollar taïwanais |
Exemple programmatique
L’application Python simple suivante utilise l’API pour interroger la tarification spot d’une machine virtuelle de la référence SKU NP20 standard dans la région USA Centre Sud. L’application filtre la sortie de la requête et présente les informations souhaitées dans un format de table.
#!/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()
L’exécution de ce code génère la sortie suivante :
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
Étapes suivantes
- Découvrez d’autres API Cost Management.