Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo mostra como estimar os custos do plano tanto para o plano de Consumo Flexível como para o plano de Consumo herdado.
Escolha a opção de hospedagem que melhor suporta os requisitos de recurso, desempenho e custo para suas execuções de função. Para obter mais informações, consulte Dimensionamento e hospedagem do Azure Functions.
Este artigo se concentra nos dois planos de consumo porque o faturamento nesses planos depende de períodos ativos de execuções dentro de cada instância.
Fornece escalonamento horizontal rápido, com opções de computação flexíveis, integração de rede virtual e suporte total para conexões usando a autenticação Microsoft Entra ID. Neste plano, as instâncias são dimensionadas dinamicamente com base na simultaneidade configurada por instância, eventos de entrada e cargas de trabalho por função para uma eficiência ideal. Flex Consumption é o plano recomendado para hospedagem sem servidor. Para obter mais informações, consulte Azure Functions Flex Consumption plan hosting.
As funções duráveis também podem ser executadas em ambos os planos. Para obter mais informações sobre as considerações de custo ao usar funções duráveis, consulte Faturamento de funções duráveis.
Custos baseados no consumo
A forma como os custos baseados no consumo são calculados, incluindo as subvenções gratuitas, depende do plano específico. Para obter as informações mais atuais sobre custos e concessão, consulte a página de preços do Azure Functions.
Há dois modos pelos quais seus custos são determinados ao executar seus aplicativos no plano Flex Consumption. Cada modo é determinado por instância.
| Modo de faturação | Descrição |
|---|---|
| Sob Demanda | Ao executar no modo sob demanda , você é cobrado apenas pela quantidade de tempo que o código da função está sendo executado em suas instâncias disponíveis. No modo sob demanda, nenhuma contagem mínima de instâncias é necessária. Você é cobrado por: • A quantidade total de memória provisionada enquanto cada instância sob demanda está executando ativamente funções (em GB-segundos), menos uma concessão gratuita de GB-s por mês. • O número total de execuções, menos uma concessão gratuita (número) de execuções por mês. |
| Sempre pronto | Você pode configurar uma ou mais instâncias, atribuídas a tipos de gatilho específicos (HTTP/Durable/Blob) e funções individuais, que estão sempre disponíveis para lidar com solicitações. Quando você tiver instâncias sempre prontas habilitadas, será cobrado por: • A quantidade total de memória provisionada em todas as suas instâncias sempre prontas, conhecida como linha de base (em GB-segundos). • A quantidade total de memória provisionada durante o tempo em que cada instância sempre pronta está executando ativamente funções (em GB-segundos). • O número total de execuções. Na faturação sempre pronta, não há subvenções gratuitas. |
Para obter as informações mais atualizadas sobre preços de execução, custos de linha de base sempre prontos e concessões gratuitas para execuções sob demanda, consulte a página de preços do Azure Functions.
Este diagrama mostra como os custos sob demanda são determinados neste plano:
Além do tempo de execução, quando você usa uma ou mais instâncias sempre prontas, paga uma taxa de linha de base mais baixa para o número de instâncias sempre prontas que mantém. O tempo de execução para instâncias sempre prontas pode ser mais barato do que o tempo de execução em instâncias com execução sob demanda.
Importante
Este artigo usa preços sob demanda para ajudá-lo a entender cálculos de exemplo. Sempre verifique os custos atuais na página de preços do Azure Functions ao estimar os custos que você pode incorrer ao executar suas funções no plano Flex Consumption.
Considere um aplicativo de função que tenha apenas gatilhos HTTP com estes fatos básicos:
- Os gatilhos HTTP lidam com 40 solicitações constantes por segundo.
- Os gatilhos HTTP lidam com 10 solicitações simultâneas.
- O tamanho da memória da instância é de 2.048 MB.
- Você não configura instâncias sempre prontas, o que significa que o aplicativo pode ser dimensionado para zero.
Em uma situação como essa, o preço depende mais do tipo de trabalho feito durante a execução do código. Vejamos dois cenários de carga de trabalho:
Carga de trabalho vinculada à CPU: em uma carga de trabalho vinculada à CPU, não há vantagem em processar várias solicitações em paralelo na mesma instância. Essa limitação significa que é melhor distribuir cada solicitação para sua própria instância para que as solicitações sejam concluídas o mais rápido possível sem contenção. Nesse cenário, defina uma simultaneidade de gatilho HTTP baixa de
1. Com 10 solicitações simultâneas, o aplicativo é dimensionado para um estado estável de aproximadamente 10 instâncias, e cada instância está continuamente ativa processando uma solicitação de cada vez.Como o tamanho de cada instância é ~2 GB, o consumo de uma única instância continuamente ativa é
2 GB * 3600 s = 7200 GB-s. Supondo uma taxa de execução sob demanda de 0,000026 USD/GB-s (sem nenhuma concessão gratuita aplicada), o custo passa a ser$0.1872 USDpor hora por instância. Como o aplicativo vinculado à CPU é dimensionado para 10 instâncias, a taxa horária total para o tempo de execução é$1.872 USD.Do mesmo modo, a taxa de execução a pedido (sem subvenções gratuitas) de 40 pedidos por segundo é igual a
40 * 3600 = 144,000execuções0.144 millionpor hora. Supondo uma taxa sob demanda de por milhão de$0.40execuções, o custo horário total (sem subvenções) das execuções é0.144 * $0.40, que é$0.0576por hora.Nesse cenário, o custo horário total da execução sob demanda em 10 instâncias é
$1.872 + $0.0576s = $1.9296 USD.Carga de trabalho vinculada a E/S: em uma carga de trabalho vinculada a E/S, a maior parte do tempo do aplicativo é gasto aguardando a solicitação de entrada, que pode ser limitada pela taxa de transferência da rede ou outros fatores upstream. Devido às entradas limitadas, o código pode processar várias operações simultaneamente sem impactos negativos. Nesse cenário, suponha que você possa processar todas as 10 solicitações simultâneas na mesma instância.
Como os encargos de consumo são baseados apenas na memória de cada instância ativa, o cálculo da taxa de consumo é simplesmente
2 GB * 3600 s = 7200 GB-s, que na taxa de execução assumida sob demanda (sem quaisquer concessões gratuitas aplicadas) é$0.1872 USDpor hora para a instância única.Como no cenário vinculado à CPU, a taxa de execução sob demanda (sem concessões gratuitas) de 40 solicitações por segundo é igual a
40 * 3600 = 144,000ou 0,144 milhão de execuções por hora. Neste caso, o custo horário total (sem subvenções) das execuções0.144 * $0.40, que é$0.0576por hora.Nesse cenário, o custo horário total da execução sob demanda de uma única instância é
$0.1872 + $0.0576 = $0.245 USD.
Comportamentos que afetam o tempo de execução
Os seguintes comportamentos de suas funções podem afetar o tempo de execução:
Gatilhos e associações: O tempo necessário para ler a entrada e gravar a saída em suas ligações de função conta como tempo de execução. Por exemplo, quando sua função usa uma associação de saída para gravar uma mensagem em uma fila de armazenamento do Azure, seu tempo de execução inclui o tempo necessário para gravar a mensagem na fila, que é incluído no cálculo do custo da função.
Execução assíncrona: o tempo que sua função aguarda os resultados de uma solicitação assíncrona (
awaitem C#) conta como tempo de execução. O cálculo de GB-segundo é baseado na hora de início e término da função e no uso de memória durante esse período. O que acontece ao longo desse tempo em termos de atividade da CPU não é levado em conta no cálculo. Talvez seja possível reduzir os custos durante operações assíncronas usando funções duráveis. Você não é cobrado pelo tempo gasto em funções de orquestrador.
Visualização e estimativa de custos a partir de métricas
Na sua fatura, pode ver os dados relacionados com os custos, juntamente com os custos reais faturados. No entanto, esses dados de fatura são um agregado mensal de um período de fatura passado.
Esta seção mostra como usar métricas, tanto no nível do aplicativo quanto em execuções de função, para estimar os custos de execução de seus aplicativos de função.
Métricas de nível de aplicativo de função
As métricas no nível do aplicativo disponíveis para seu aplicativo dependem do tipo de plano de consumo que você usa.
Estas métricas do Azure Monitor estão relacionadas com a faturação do plano Flex Consumption:
| Métrico | Descrição | Cálculo do contador |
|---|---|---|
| Contagem de Execução de Funções On Demand | Número total de execuções de funções em instâncias sob pedido. |
OnDemandFunctionExecutionCount refere-se ao medidor de Execuções Totais Sob Demanda. |
| Contagem de Execução da Função "Always Ready" | Número total de execuções de funções em instâncias sempre ativas. |
AlwaysReadyFunctionExecutionCount refere-se ao medidor de Execuções Totais Sempre Prontas . |
| Unidades de Execução de Funções On Demand | Total de MB-milissegundos a partir de instâncias sob demanda durante a execução ativa de funções. |
OnDemandFunctionExecutionUnits / 1,024,000 é o medidor de Tempo de Execução On Demand, em GB-segundos. |
| Unidades de Execução de Funções Sempre Prontas | Total de MB-milissegundos de instâncias sempre prontas durante a execução ativa de funções. |
AlwaysReadyFunctionExecutionUnits / 1,024,000 é o medidor de Tempo de Execução Sempre Pronto, em GB-segundos. |
| Unidades Sempre Preparadas | O total de MB-milissegundos de instâncias sempre prontas atribuídas ao aplicativo, independentemente de as funções estarem ou não em execução ativa. |
AlwaysReadyUnits / 1,024,000 é o medidor Always Ready Baseline, em GB-segundos. |
Para obter mais informações, consulte Referência de dados de monitoramento do Azure Functions.
Para entender melhor os custos de suas funções, use o Azure Monitor para exibir métricas relacionadas a custos que seus aplicativos de função geram. Você pode visualizar as métricas do Monitor usando uma destas ferramentas:
Use o explorador de métricas do Azure Monitor para exibir dados relacionados a custos para seus aplicativos de função do plano Flex Consumption em um formato gráfico.
No portal do Azure, vá para seu aplicativo de função.
No painel esquerdo, role para baixo até Monitoramento e selecione Métricas.
Em Metric, selecione Contagem de Execução de Função sob Demanda e Soma para Agregação. Esta seleção adiciona a soma das contagens de execução durante o período escolhido ao gráfico.
Selecione Adicionar métrica e adicione Unidades de Execução de Função Sob Demanda, Contagem de Execução de Função Sempre Pronta, Unidades de Execução de Função Sempre Pronta e Unidades Sempre Prontas ao gráfico.
O gráfico resultante contém os totais de todas as métricas de execução do Flex Consumption no intervalo de tempo escolhido, que neste exemplo é um intervalo de tempo personalizado.
Como o número de Unidades de Execução de Função On Demand é maior do que a Contagem de Execução de Função On Demand e não havia instâncias sempre prontas no aplicativo, o gráfico mostra apenas Unidades de Execução de Função On Demand.
Este gráfico mostra um total de 3,54 bilhões On Demand Function Execution Units consumidos em um período de 16 minutos, medidos em MB-milissegundos. Para converter em GB-segundos, divida por 1.024.000. Neste exemplo, o aplicativo de função consumiu 3,540,000,000 / 1,024,000 = 3,457.03 GB-segundos. Você pode pegar esse valor e multiplicá-lo pelo preço atual do Tempo de Execução Sob Demanda na página de preços de Funções, o que lhe dá o custo desses 16 minutos, supondo que você já tenha usado quaisquer concessões gratuitas de tempo de execução. Você pode usar esse mesmo cálculo com a métrica das Unidades de Execução de Funções Sempre Prontas e o custo do medidor de faturamento do Tempo de Execução Sempre Pronto, bem como com a métrica das Unidades Sempre Prontas e o custo do medidor de faturamento da Linha de Base Sempre Pronta, para descobrir os custos de GB-segundos para as instâncias sempre prontas.
Para calcular o custo do Total de Execuções On Demand, pegue a soma da Contagem de Execuções das Funções On Demand para o mesmo período, converta em milhões e multiplique pelo preço do Total de Execuções On Demand na página de preços de Funções. Por exemplo, 2.100 execuções no exemplo acima convertem em 0.0021 milhões de execuções. Você pode usar esse mesmo cálculo com a métrica "Always Ready Function Execution Count" e o medidor de faturamento "Always Ready Total Executions" para calcular o custo das execuções realizadas pela instância sempre pronta.
Métricas de nível de função
O uso de memória é importante ao estimar os custos das execuções de suas funções. No entanto, a forma como a utilização da memória afeta os seus custos depende do tipo de plano específico:
No plano Flex Consumption, você paga pelo tempo de execução da instância com base no tamanho da instância escolhida, que tem um limite de memória definido. Para mais informações, veja Facturação.
Se você ainda não tiver feito isso, habilite o Application Insights em seu aplicativo de função. Com essa integração habilitada, você pode consultar esses dados de telemetria no portal.
Você pode usar o explorador de métricas do Azure Monitor no portal do Azure ou APIs REST para obter dados do Monitor Metrics.
Determinar o uso da memória
Em Monitoramento, selecione Logs (Analytics), copie a seguinte consulta de telemetria e cole-a na janela de consulta e selecione Executar. Esta consulta retorna o uso total de memória em cada momento amostrado.
performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value
Os resultados são semelhantes ao exemplo a seguir:
| carimbo de data/hora [UTC] | nome | valor |
|---|---|---|
| 12/09/2019, 01:05:14.947 | Bytes privados | 209,932,288 |
| 12/09/2019, 01:06:14.994 | Bytes privados | 212,189,184 |
| 12/09/2019, 01:06:30.010 | Bytes privados | 231,714,816 |
| 12/09/2019, 01:07:15.040 | Bytes privados | 210,591,744 |
| 12/09/2019, 01:12:16.285 | Bytes privados | 216,285,184 |
| 12/09/2019, 01:12:31.376 | Bytes privados | 235,806,720 |
Determinar a duração
O Azure Monitor rastreia métricas no nível de recurso, que para o Functions é o aplicativo de função. A integração do Application Insights emite métricas por função. Aqui está um exemplo de consulta de análise para obter a duração média de uma função:
customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
| nome | médiaDuraçãoMilésimos de segundo |
|---|---|
| QueueTrigger AvgDurationMs | 16.087 |
| QueueTrigger MaxDurationMs | 90.249 |
| Acionador de Fila Duração Mínima Ms | 8.522 |
Outros custos conexos
Ao estimar o custo geral da execução de suas funções em qualquer plano, lembre-se de que o tempo de execução do Functions usa vários outros serviços do Azure, cada um cobrado separadamente. Quando você estima preços para aplicativos de função, quaisquer gatilhos e associações que você tenha que se integrem a outros serviços do Azure exigem que você crie e pague por esses outros serviços.
Para funções executadas em um plano de consumo, o custo total é o custo de execução de suas funções, mais o custo de largura de banda e outros serviços.
Ao estimar os custos gerais do seu aplicativo de função e serviços relacionados, use a calculadora de preços do Azure.
| Custos relacionados | Descrição |
|---|---|
| Conta de armazenamento | Cada aplicativo de função requer que você tenha uma conta de Armazenamento do Azure de Uso Geral associada, que é cobrada separadamente. Essa conta é usada internamente pelo tempo de execução do Functions, mas você também pode usá-la para gatilhos e associações de armazenamento. Se você não tiver uma conta de armazenamento, uma será criada para você quando o aplicativo de função for criado. Para saber mais, consulte Requisitos da conta de armazenamento. |
| Informações sobre aplicativos | O Functions depende do Application Insights para fornecer uma experiência de monitoramento de alto desempenho para seus aplicativos funcionais. Embora não seja necessário, você deve habilitar a integração do Application Insights. Uma concessão gratuita de dados de telemetria é incluída todos os meses. Para saber mais, consulte a página de preços do Azure Monitor. |
| Largura de banda da rede | Você pode incorrer em custos de transferência de dados dependendo da direção e do cenário da movimentação de dados. Para saber mais, consulte Detalhes de preços de largura de banda. |