Partilhar via


Durable Functions faturação

Durable Functions é faturado da mesma forma que Funções do Azure. Para obter mais informações, veja Funções do Azure preços.

Ao executar funções de orquestrador no Funções do Azure Plano de consumo, tem de estar ciente de alguns comportamentos de faturação. As secções seguintes descrevem estes comportamentos e o respetivo efeito mais detalhadamente.

Faturação da repetição de funções do Orchestrator

As funções do Orchestrator podem ser repetidas várias vezes ao longo da duração de uma orquestração. Cada repetição é vista pelo Funções do Azure runtime como uma invocação de função distinta. Por este motivo, no plano Funções do Azure Consumo, é-lhe faturado cada repetição de uma função de orquestrador. Outros tipos de plano não cobram pela repetição da função do orquestrador.

Aguardar e ceder em funções de orquestrador

Quando uma função do orquestrador aguarda a conclusão de uma tarefa assíncrona, o runtime considera que a invocação de função específica está concluída. A faturação da função do orquestrador para nessa altura. Só será retomada após a próxima repetição da função do orquestrador. Não é faturado por qualquer tempo passado à espera ou a ceder numa função de orquestrador.

Nota

As funções que chamam outras funções são consideradas por algumas como um anti-padrão sem servidor. Isto deve-se a um problema conhecido como faturação dupla. Quando uma função chama diretamente outra função, ambas são executadas ao mesmo tempo. A função denominada está a executar ativamente código enquanto a função de chamada está à espera de uma resposta. Neste caso, tem de pagar o tempo que a função de chamada gasta à espera que a função chamada seja executada.

Não existe faturação dupla nas funções do orquestrador. A faturação de uma função do orquestrador para enquanto aguarda o resultado de uma função de atividade ou sub-orquestração.

Consulta HTTP durável

As funções do Orchestrator podem fazer chamadas HTTP de execução prolongada para pontos finais externos, conforme descrito no artigo funcionalidades HTTP. As APIs "chamar HTTP" podem consultar internamente um ponto final HTTP ao seguir o padrão assíncrono 202.

Atualmente, não existe faturação direta para operações de consulta HTTP internas. No entanto, as consultas internas podem fazer com que a função do orquestrador seja repetida periodicamente. Ser-lhe-ão cobrados custos padrão para estas repetições de funções internas.

Transações do Armazenamento do Azure

Durable Functions utiliza o Armazenamento do Azure por predefinição para manter o estado persistente, processar mensagens e gerir partições através de concessões de blobs. Uma vez que é o proprietário desta conta de armazenamento, todos os custos de transação são faturados na sua subscrição do Azure. Para obter mais informações sobre os artefactos do Armazenamento do Azure utilizados pelo Durable Functions, consulte o artigo Hubs de tarefas.

Vários fatores contribuem para os custos reais do Armazenamento do Azure incorridos pela sua aplicação Durable Functions:

  • Uma única aplicação de funções está associada a um único hub de tarefas, que partilha um conjunto de recursos do Armazenamento do Azure. Estes recursos são utilizados por todas as funções duráveis numa aplicação de funções. O número real de funções na aplicação de funções não tem qualquer efeito nos custos de transação do Armazenamento do Azure.
  • Cada instância da aplicação de funções consulta internamente várias filas na conta de armazenamento através de um algoritmo de consulta exponencial de backoff. Uma instância de aplicação inativa consulta as filas com menos frequência do que uma aplicação ativa, o que resulta em menos custos de transação. Para obter mais informações sobre Durable Functions comportamento de consulta de filas ao utilizar o fornecedor de Armazenamento do Azure, veja a secção de consulta de filas da documentação do fornecedor de Armazenamento do Azure.
  • Ao executar nos planos Funções do Azure Consumption ou Premium, o controlador de dimensionamento Funções do Azure consulta regularmente todas as filas do hub de tarefas em segundo plano. Se uma aplicação de funções estiver numa escala leve a moderada, apenas uma instância de controlador de escala única irá consultar estas filas. Se a aplicação de funções aumentar horizontalmente para um grande número de instâncias, poderão ser adicionadas mais instâncias de controlador de escala. Estas instâncias adicionais do controlador de escala podem aumentar os custos totais de transação de filas.
  • Cada instância da aplicação de funções compete por um conjunto de concessões de blobs. Estas instâncias efetuarão periodicamente chamadas para o serviço blob do Azure para renovar as concessões realizadas ou para tentar adquirir novas concessões. A contagem de partições configurada do hub de tarefas determina o número de concessões de blobs. Aumentar horizontalmente para um maior número de instâncias de aplicações de funções provavelmente aumenta os custos de transação do Armazenamento do Azure associados a estas operações de concessão.

Pode encontrar mais informações sobre os preços do Armazenamento do Azure na documentação de preços do Armazenamento do Azure .

Passos seguintes