Visão geral dos preços de varejo do Azure

Os clientes do Azure têm procurado uma maneira programática de recuperar os preços de varejo de todos os serviços do Azure. Agora você pode usar a API preços de tarifas de varejo para obter preços de varejo para todos os serviços do Azure. Anteriormente, a única maneira de recuperar os preços dos serviços do Azure era usar a Calculadora de Preços do Azure ou usar o portal do Azure. Essa API oferece uma experiência não autenticada para obter taxas de varejo para todos os serviços do Azure. Use a API para explorar os preços dos serviços do Azure em diferentes regiões e SKUs diferentes. A API programática também pode ajudá-lo a criar suas próprias ferramentas para análise interna e comparação de preços entre SKUs e regiões.

Importante

A moeda que a Microsoft usa para precificar todos os serviços do Azure é USD. Os preços mostrados em moeda usd são preços de varejo da Microsoft. Outros preços não USD retornados pela API são para sua referência para ajudá-lo a estimar as despesas do orçamento.

Versão de visualização

Você pode usar a nova versão da API 2023-01-01-preview em https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. A versão de visualização é compatível com versões anteriores da API. A URL retorna o conjunto completo de medidores, incluindo medidores primários e medidores nãoprimários.

Usar https://prices.azure.com/api/retail/prices ou https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview retorna o conjunto completo de medidores.

As taxas para planos de poupança só estão disponíveis com a versão https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview.

Filtragem de medidor primário

Você pode limitar as respostas para recuperar apenas os preços do medidor primário com:

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

Há suporte para filtragem de medidor primário com 2021-10-01 e versões posteriores da API, incluindo 2023-01-01.

O valor do filtro diferencia maiúsculas de minúsculas

Nas versões anteriores da API, o valor do filtro não diferenciasse maiúsculas de minúsculas. No entanto, na versão 2023-01-01-preview e posterior, o valor diferencia maiúsculas de minúsculas.

Por exemplo:

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

Em versões anteriores da API, Virtual Machines e virtual machines funcionavam.

Agora, só Virtual Machines funciona.

Suporte ao plano de salvamento do Azure

Conforme mencionado anteriormente, os preços de varejo do plano de poupança do Azure só têm suporte com a versão prévia (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). Para os medidores qualificados para um plano de poupança, os resultados têm uma seção correspondente para o plano de poupança. Quando você se compromete com um plano de poupança, você obtém um preço mais barato do que o preço OnDemand. Para obter mais informações sobre os planos de poupança do Azure, consulte documentação dos planos de poupança do Azure.

Aqui está um exemplo de resposta à API com informações do plano de poupança:


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

Ponto de extremidade da API

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

Chamadas de exemplo de API

Aqui estão alguns exemplos:

Chamadas de exemplo filtradas apenas para máquinas virtuais:

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

Chamadas de exemplo filtradas apenas para reservas:

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

Chamadas de exemplo filtradas para máquinas virtuais de instância reservada:

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

Chamadas de exemplo filtradas para recursos de computação:

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

Você pode acrescentar o código de moeda ao ponto de extremidade da API, conforme mostrado na chamada de exemplo de API. Para obter uma lista completa de moedas com suporte, consulte moedas com suporte.

Exemplo de chamadas filtradas para computação com moeda em euro:

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

Exemplos de resposta de API

Aqui está uma resposta de API de exemplo, sem preços 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"
        }

Aqui está uma resposta de API de exemplo com preços de reserva e termo na resposta.

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

Aqui está uma resposta de exemplo com uma moeda não 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"
}

Paginação de resposta da API

A resposta à API fornece paginação. Para cada solicitação de API, um máximo de 1.000 registros são retornados. No final da resposta à API, ela tem o link para a próxima página. Por exemplo:

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

Detalhes da propriedade da API

Aqui estão todos os detalhes da propriedade que fazem parte da resposta à API.

Campo Valores de exemplo Definição
currencyCode USD A moeda na qual as taxas são definidas e retorna os preços em USD, a menos que especificado.
tierMinimumUnits 0 Unidades mínimas de consumo para aproveitar o preço
reservationTerm 1 ano Termo de reserva – um ano ou três anos
retailPrice 0.176346 Preços de Varejo da Microsoft sem desconto
unitPrice 0.176346 O mesmo que retailPrice
armRegionName westeurope Região do Azure Resource Manager em que o serviço está disponível. Esta versão dá suporte apenas aos preços na Nuvem Comercial.
Location Oeste da UE Data center do Azure onde o recurso é implantado
effectiveStartDate 2020-08-01T00:00:00Z Campo opcional. Mostra a data em que os preços de varejo estão em vigor.
meterId 000a794b-bdb0-58be-a0cd-0c3a0f222923 Identificador exclusivo do recurso
meterName F16s Spot Nome do medidor
productid DZH318Z0BQPS UniqueID do produto
skuId DZH318Z0BQPS/00TG UniqueID para o SKU
productName Máquinas virtuais FS Series Windows Nome do produto
skuName F16s Spot Nome do SKU
serviceName Máquinas virtuais Nome do serviço
serviceId DZH313Z7MMC8 UniqueID do serviço
serviceFamily Calcular Família de serviços da SKU
unitOfMeasure 1 hora Como o uso é medido para o serviço
Type DevTestConsumption Tipo de consumo de medidor. Outros tipos são Reservation e Consumption.
isPrimaryMeterRegion Verdadeiro Indica se a região do medidor está definida como um medidor primário ou não. Os medidores primários são usados para cobrança e encargos.
armSkuName Standard_F16s Nome do SKU registrado no Azure
term 3 anos Duração do prazo para um plano de poupança do Azure, associado a informações de savingsPlan.

Filtros de API

Há suporte para filtros para os seguintes campos:

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

Você acrescenta os filtros ao ponto de extremidade da API, conforme mostrado nas chamadas de exemplo de API.

Valores serviceFamily com suporte

As informações a seguir são a lista de valores de serviceFamily com suporte. As informações estão sujeitas a alterações.

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

Exemplo programático

O aplicativo python simples a seguir emprega a API para consultar o preço spot de varejo de uma máquina virtual do SKU NP20 padrão na região Centro-Sul dos EUA. O aplicativo filtra a saída da consulta e apresenta as informações desejadas em um formato de tabela.

#!/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 execução desse código produz a seguinte saída:

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

Próximas etapas

  • Saiba mais sobre outras APIs de Gerenciamento de Custos .