Descrição geral dos Preços de Revenda do Azure
Os clientes do Azure têm procurado uma forma programática de obter preços de retalho para todos os serviços do Azure. Agora, pode utilizar a API preços de revenda para obter preços de venda a retalho para todos os serviços do Azure. Anteriormente, a única forma de obter os preços dos serviços do Azure era utilizar a Calculadora de Preços do Azure ou utilizar o portal do Azure. Esta API dá-lhe uma experiência não autenticada para obter taxas de revenda para todos os serviços do Azure. Utilize 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 as 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 utiliza para valorizar todos os serviços do Azure é USD. Os preços apresentados na moeda USD são os preços de retalho da Microsoft. Outros preços não USD devolvidos pela API destinam-se à sua referência para o ajudar a estimar as despesas orçamentais.
Versão de pré-visualização
Pode utilizar a nova versão da API de pré-visualização 2023-01-01 em https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview. A versão de pré-visualização é retrocompatível com versões anteriores da API. O URL devolve o conjunto completo de medidores, incluindo medidores primários e medidores não primários.
Utilizar ou https://prices.azure.com/api/retail/priceshttps://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview devolver o conjunto completo de medidores.
As tarifas dos planos de poupança só estão disponíveis com a https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview
versão.
Filtragem do medidor primário
Pode limitar as respostas para obter apenas os preços do medidor primário com:
https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'
A filtragem do medidor primário é suportada por 2021-10-01
versões posteriores da API, incluindo 2023-01-01
.
O valor do filtro é sensível às maiúsculas e minúsculas
Nas versões anteriores da API, o valor do filtro não era sensível às maiúsculas e minúsculas. No entanto, na 2023-01-01-preview
versão e posterior, o valor é sensível às maiúsculas e 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
funcionou.
Agora, só Virtual Machines
funciona.
Suporte do plano de poupança do Azure
Como mencionado anteriormente, os preços de revenda do plano de poupança do Azure só são suportados com a versão de pré-visualização (https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview). Para os medidores elegíveis para um plano de poupança, os resultados têm uma secção correspondente para o plano de poupança. Quando se compromete com um plano de poupança, obtém um preço mais barato do que o OnDemand
preço. Para obter mais informações sobre os planos de poupança do Azure, veja Documentação dos planos de poupança do Azure.
Eis um exemplo de resposta da 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 final de API
https://prices.azure.com/api/retail/prices
Chamadas de exemplo de API
Eis 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âncias reservadas:
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'
Chamadas de exemplo filtradas para computação com moeda em euro:
https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'
Exemplos de resposta da API
Eis 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"
}
Eis 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"
}
Eis 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 pedido de API, são devolvidos um máximo de 1000 registos. No final da resposta da API, tem a ligação para a página seguinte. 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
Eis todos os detalhes da propriedade que fazem parte da resposta da API.
Campo | Valores de Exemplo | Definição |
---|---|---|
currencyCode |
USD | A moeda em que as taxas são definidas e devolve os preços em USD, a menos que seja especificado. |
tierMinimumUnits |
0 | Unidades mínimas de consumo para aproveitar o preço |
reservationTerm |
1 ano | Período de reserva – um ano ou três anos |
retailPrice |
0.176346 | Preços sem desconto |
unitPrice |
0.176346 | |
armRegionName |
westeurope |
O Azure Resource Manager região onde o serviço está disponível. Esta versão só suporta preços na Cloud Comercial. |
Location |
EU Oeste | Datacenter do Azure onde o recurso é implementado |
effectiveStartDate |
08-2020-01T00:00:00Z | Campo opcional. Mostra a data em que os preços de venda a retalho 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/00 TG | 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 a utilização é medida 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 utilizados para custos e faturação. |
armSkuName |
Standard_F16s | Nome do SKU registado no Azure |
term |
3 Anos | Duração do prazo para um plano de poupança do Azure, associado às savingsPlan informações. |
Filtros de API
Os filtros são suportados para os seguintes campos:
armRegionName
Location
meterId
meterName
productid
skuId
productName
skuName
serviceName
serviceId
serviceFamily
priceType
armSkuName
Pode acrescentar os filtros ao ponto final da API, conforme mostrado nas chamadas de exemplo da API.
Moedas suportadas
Acrescente o código de moeda ao ponto final da API, conforme mostrado na chamada de exemplo da API.
Código de moeda | Detalhes |
---|---|
USD | Dólar norte-americano |
AUD | Dólar australiano |
BRL | Real brasileiro |
CAD | Dólar canadiano |
CHF | Franco suíço |
CNY | Yuan chinês |
DKK | Coroa dinamarquesa |
EUR | Euro |
GBP | Libra britânica |
INR | Rupia indiana |
JPY | Iene japonês |
KRW | Coreano ganhou |
NOK | Coroa norueguesa |
NZD | Dólar da Nova Zelândia |
RUB | Rublo russo |
SEK | Coroa sueca |
TWD | Dólar de Taiwan |
Exemplo Programático
A seguinte aplicação python simples utiliza a API para consultar os preços spot de revenda de uma máquina virtual do SKU NP20 padrão na região E.U.A. Centro-Sul. A aplicação filtra a saída da consulta e apresenta as informações pretendidas num 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 deste código produz o seguinte resultado:
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| 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 |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+
Passos seguintes
- Saiba mais sobre outras APIs do Cost Management.