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 precios de venta al por menor para obtener precios de venta al por menor para 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 Azure Portal. Esta API le ofrece una experiencia sin autenticación para obtener las tarifas comerciales de todos los servicios de Azure. Use la API para explorar los precios de los servicios de Azure en distintas regiones y 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 precios de todos los servicios de Azure es USD. Los precios que se muestran en moneda de USD son los precios de venta al por menor de Microsoft. Otros precios que no son de 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 la 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.
Con o https://prices.azure.com/api/retail/priceshttps://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 https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
versión.
Filtrado de medidor principal
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 es compatible 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 del filtro no distingue mayúsculas de minúsculas. Sin embargo, en la 2023-01-01-preview
versión 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'
Obras.
En versiones anteriores de la API y Virtual Machines
virtual machines
funcionaban.
Ahora, solo Virtual Machines
funciona.
Compatibilidad con el plan de ahorro de Azure
Como se mencionó anteriormente, los precios comerciales 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 OnDemand
precio. Para más información sobre los planes de ahorro de Azure, consulte la documentación sobre 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 la 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'
Llamadas de ejemplo filtradas para proceso con moneda en euros:
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 que no es 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 sin descuento |
unitPrice |
0.176346 | |
armRegionName |
westeurope |
Azure Resource Manager región en la que el servicio está disponible. Esta versión solo admite precios en Commercial Cloud. |
Location |
Oeste de Europa | 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 Virtual Machines | Nombre de producto |
skuName |
F16s Spot | Nombre de SKU |
serviceName |
Virtual Machines | Nombre del servicio |
serviceId |
DZH313Z7MMC8 | UniqueID del servicio |
serviceFamily |
Compute | 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 |
True | Indica si la región del medidor está establecida 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 la información. |
Filtros de API
Los filtros se admiten para los campos siguientes:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
Los filtros se anexan al punto de conexión de la API, como se muestra en las llamadas de ejemplo de API.
Monedas admitidas
Anexe el código de moneda al punto de conexión de la API, como se muestra en la llamada de ejemplo de API.
Código de moneda | Detalle |
---|---|
USD | Dólar estadounidense |
AUD | Dólar australiano |
BRL | Real brasileño |
CAD | Dólar canadiense |
CHF | Franco suizo |
CNY | Yuan chino |
DKK | Corona danesa |
EUR | Euro |
GBP | Libra británica |
INR | Rupia india |
JPY | Yen japonés |
KRW | Coreano ganado |
NOK | Corona noruega |
NZD | Dólar neozelandés |
FROTAR | Rublo ruso |
SEK | Corona sueca |
TWD | Dólar taiwanés |
Ejemplo de programación
La siguiente aplicación de Python sencilla 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
Pasos siguientes
- Obtenga información sobre otras API de Cost Management.