Compartir a través de


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

Pasos siguientes

  • Obtenga información sobre otras API de Cost Management de .