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 taxas 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. 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 de orçamento.
Versão prévia
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 prévia é compatível com versões anteriores da API. A URL retorna o conjunto completo de metros, incluindo medidores primários e metros nãoprimários.
Usando ou https://prices.azure.com/api/retail/priceshttps://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview retorna o conjunto completo de metros.
As taxas para planos de economia só estão disponíveis com a https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
versão.
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 por 2021-10-01
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 diferencia maiúsculas de minúsculas. No entanto, na 2023-01-01-preview
versão 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 e Virtual Machines
virtual machines
funcionava.
Agora, só Virtual Machines
funciona.
Suporte ao plano de salvamento do Azure
Conforme mencionado anteriormente, os preços de varejo do plano de economia 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 economia, os resultados têm uma seção correspondente para o plano de economia. Ao se comprometer com um plano de economia, você obtém um preço mais barato do que o OnDemand
preço. Para obter mais informações sobre os planos de economia do Azure, consulte a documentação dos planos de economia do Azure.
Aqui está um exemplo de resposta à API com informações do plano de economia:
{
"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 de API
https://prices.azure.com/api/retail/prices
Chamadas de exemplo de API
Estes sã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'
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 da API fornece paginação. Para cada solicitação de API, um máximo de 1.000 registros são retornados. No final da resposta da API, ele 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 da 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 | Período de reserva – um ou três anos |
retailPrice |
0.176346 | Preços sem desconto |
unitPrice |
0.176346 | |
armRegionName |
westeurope |
O Azure Resource Manager região em que o serviço está disponível. Esta versão só dá suporte a preços na Nuvem Comercial. |
Location |
Oeste da Europa | Data center do Azure em que o recurso é implantado |
effectiveStartDate |
2020-08-01T00:00:00Z | Campo opcional. Mostra a data em que os preços de varejo são eficazes. |
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 |
Computação | Família de serviços do 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 |
True | Indica se a região do medidor é 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 economia do Azure, associado a savingsPlan informações. |
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.
Moedas com suporte
Você acrescenta o código de moeda ao ponto de extremidade da API, conforme mostrado na chamada de exemplo de API.
Código de moeda | Detalhe |
---|---|
USD | Dólar americano |
AUD | Dólar australiano |
BRL | Real brasileiro |
CAD | Dólar canadense |
CHF | Franco suíço |
CNY | Yuan chinês |
DKK | Coroa dinamarquesa |
EUROS | Euro |
GBP | Libra britânica |
INR | Rúpia indiana |
JPY | Iene japonês |
KRW | Coreano ganho |
NOK | Coroa norueguesa |
NZD | Dólar neozelandês |
ESFREGAR | Rublo russo |
SEK | Coroa sueca |
TWD | Dólar de Taiwan |
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.