Introducción a los precios de venta al por menor de Azure
Los clientes de Azure han estado buscando una manera programática de recuperar los precios minoristas de todos los servicios de Azure. Ahora puede usar la API Precios de tarifas de venta al por menor para obtener los precios minoristas de todos los servicios de Azure. Anteriormente, la única manera de recuperar los precios de los servicios de Azure era usar la calculadora de precios de Azure o usar Azure Portal. Esta API proporciona una experiencia no autenticada para obtener tarifas comerciales para todos los servicios de Azure. Use la API para explorar los precios de los servicios de Azure en diferentes regiones y diferentes SKU. La API de programación también puede ayudarle a crear sus propias herramientas para el análisis interno y la comparación de precios entre SKU y regiones.
Importante
La moneda que Microsoft usa para precio a todos los servicios de Azure es USD. Los precios que se muestran en moneda USD son precios minoristas de Microsoft. Otros precios que no son USD devueltos por la API son para su referencia para ayudarle a calcular los gastos presupuestarios.
Versión preliminar
Puede usar la nueva versión de api 2023-01-01-preview en https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. La versión preliminar es compatible con versiones anteriores de la API. La dirección URL devuelve el conjunto completo de medidores, incluidos los medidores principales y los medidores no primarios.
El uso de https://prices.azure.com/api/retail/prices o https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview devuelve el conjunto completo de medidores.
Las tarifas de los planes de ahorro solo están disponibles con la versión de https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
.
Filtrado de medidores principales
Puede limitar las respuestas para recuperar solo los precios de los medidores principales con:
https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'
El filtrado de medidores principal se admite con 2021-10-01
y versiones posteriores de la API, incluidas 2023-01-01
.
El valor de filtro distingue mayúsculas de minúsculas
En versiones anteriores de la API, el valor de filtro no distingue mayúsculas de minúsculas. Sin embargo, en la versión de 2023-01-01-preview
y versiones posteriores, el valor distingue mayúsculas de minúsculas.
Por ejemplo:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
funciona.
En versiones anteriores de la API, Virtual Machines
y virtual machines
funcionaban.
Ahora, solo Virtual Machines
funciona.
Compatibilidad con el plan de ahorro de Azure
Como se mencionó anteriormente, los precios minoristas del plan de ahorro de Azure solo se admiten con la versión preliminar (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). Para los medidores aptos para un plan de ahorro, los resultados tienen una sección correspondiente para el plan de ahorro. Cuando se compromete a un plan de ahorro, obtendrá un precio más barato que el precio OnDemand
. Para más información sobre los planes de ahorro de Azure, consulte documentación de los planes de ahorro de Azure.
Esta es una respuesta de API de ejemplo con información del plan de ahorro:
{
"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"
}
]
},
Punto de conexión de API
https://prices.azure.com/api/retail/prices
Llamadas de ejemplo de API
Estos son algunos ejemplos:
Llamadas de ejemplo filtradas solo para máquinas virtuales:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'
Llamadas de ejemplo filtradas solo para reservas:
https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'
Llamadas de ejemplo filtradas para máquinas virtuales de instancia reservada:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'
Llamadas de ejemplo filtradas para recursos de proceso:
https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'
Puede anexar el código de moneda al punto de conexión de API, como se muestra en la llamada de ejemplo de API. Para obtener una lista completa de las monedas admitidas, consulte Monedas admitidas.
Llamadas de ejemplo filtradas para el proceso con moneda en euro:
https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'
Ejemplos de respuesta de API
Esta es una respuesta de API de ejemplo, sin precios de reserva.
{
"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"
}
Esta es una respuesta de API de ejemplo con precios de reserva y término en la respuesta.
{
"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"
}
Esta es una respuesta de ejemplo con una moneda distinta de 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"
}
Paginación de respuesta de API
La respuesta de la API proporciona paginación. Para cada solicitud de API, se devuelve un máximo de 1000 registros. Al final de la respuesta de la API, tiene el vínculo a la página siguiente. Por ejemplo:
"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000
Detalles de la propiedad de API
Estos son todos los detalles de la propiedad que forman parte de la respuesta de la API.
Campo | Valores de ejemplo | Definición |
---|---|---|
currencyCode |
USD | Moneda en la que se definen las tarifas y devuelve los precios en USD a menos que se especifique. |
tierMinimumUnits |
0 | Unidades mínimas de consumo para aprovechar el precio |
reservationTerm |
1 año | Período de reserva: un año o tres años |
retailPrice |
0.176346 | Precios de venta al por menor de Microsoft sin descuento |
unitPrice |
0.176346 | Igual que retailPrice |
armRegionName |
westeurope |
Región de Azure Resource Manager en la que el servicio está disponible. Esta versión solo admite precios en la nube comercial. |
Location |
Oeste de la UE | Centro de datos de Azure donde se implementa el recurso |
effectiveStartDate |
2020-08-01T00:00:00Z | Campo opcional. Muestra la fecha en que los precios de venta al por menor son efectivos. |
meterId |
000a794b-bdb0-58be-a0cd-0c3a0f222923 | Identificador único del recurso |
meterName |
F16s Spot | Nombre del medidor |
productid |
DZH318Z0BQPS | UniqueID del producto |
skuId |
DZH318Z0BQPS/00TG | UniqueID para la SKU |
productName |
Windows de la serie FS de máquinas virtuales | Nombre del producto |
skuName |
F16s Spot | Nombre de la SKU |
serviceName |
Máquinas virtuales | Nombre del servicio |
serviceId |
DZH313Z7MMC8 | UniqueID del servicio |
serviceFamily |
Calcular | Familia de servicios de la SKU |
unitOfMeasure |
1 hora | Cómo se mide el uso para el servicio |
Type |
DevTestConsumption | Tipo de consumo de medidor. Otros tipos son Reservation y Consumption . |
isPrimaryMeterRegion |
Verdadero | Indica si la región del medidor se establece como un medidor principal o no. Los medidores principales se usan para cargos y facturación. |
armSkuName |
Standard_F16s | Nombre de SKU registrado en Azure |
term |
3 años | Longitud del período de un plan de ahorro de Azure, asociado a savingsPlan información. |
Filtros de API
Los filtros son compatibles con los siguientes campos:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
Anexe los filtros al punto de conexión de API, como se muestra en las llamadas de ejemplo de API.
Valores de serviceFamily admitidos
La siguiente información es la lista de valores de serviceFamily
admitidos. La información está sujeta a cambios.
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
Ejemplo de programación
La siguiente aplicación de Python simple emplea la API para consultar los precios de spot comercial de una máquina virtual de la SKU NP20 estándar en la región Centro-sur de EE. UU. La aplicación filtra la salida de la consulta y presenta la información deseada en un formato de tabla.
#!/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()
La ejecución de este código genera la siguiente salida:
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+