Partilhar via


Durable Functions tipos e funcionalidades

Durable Functions é uma extensão de Funções do Azure. Pode utilizar Durable Functions para orquestração com estado da execução de funções. Uma aplicação de funções durável é uma solução composta por diferentes funções do Azure. As funções podem desempenhar papéis diferentes numa orquestração de funções duráveis.

Atualmente, existem quatro tipos de funções duráveis no Funções do Azure: atividade, orquestrador, entidade e cliente. O resto desta secção vai para mais detalhes sobre os tipos de funções envolvidas numa orquestração.

Funções do Orchestrator

As funções do Orchestrator descrevem como as ações são executadas e a ordem pela qual as ações são executadas. As funções do Orchestrator descrevem a orquestração no código (C# ou JavaScript), conforme mostrado em Durable Functions padrões de aplicação. Uma orquestração pode ter muitos tipos diferentes de ações, incluindo funções de atividade, sub-orquestrações, à espera de eventos externos, HTTP e temporizadores. As funções do Orchestrator também podem interagir com funções de entidade.

Nota

As funções do Orchestrator são escritas com código comum, mas existem requisitos estritos sobre como escrever o código. Especificamente, o código de função do orquestrador tem de ser determinista. Não seguir estes requisitos de determinismo pode fazer com que as funções do orquestrador não funcionem corretamente. Pode encontrar informações detalhadas sobre estes requisitos e como contornar os mesmos no tópico de restrições de código .

Para obter informações mais detalhadas sobre as funções do orquestrador e as respetivas funcionalidades, veja o artigo Orquestrações duráveis .

Funções de atividade

As funções de atividade são a unidade básica de trabalho numa orquestração de funções duráveis. As funções de atividade são as funções e tarefas orquestradas no processo. Por exemplo, pode criar uma função de orquestrador para processar uma encomenda. As tarefas envolvem verificar o inventário, cobrar ao cliente e criar um envio. Cada tarefa seria uma função de atividade separada. Estas funções de atividade podem ser executadas em série, em paralelo, ou alguma combinação de ambas.

Ao contrário das funções do orquestrador, as funções de atividade não são restritas no tipo de trabalho que pode fazer nas mesmas. As funções de atividade são frequentemente utilizadas para efetuar chamadas de rede ou executar operações de CPU intensivas. Uma função de atividade também pode devolver dados à função orchestrator. O Durable Task Framework garante que cada função denominada atividade será executada pelo menos uma vez durante a execução de uma orquestração.

Nota

Uma vez que as funções de atividade só garantem , pelo menos, uma execução , recomendamos que torne a sua função de atividade idempotente lógica sempre que possível.

Utilize um acionador de atividade para definir uma função de atividade. As funções .NET recebem um DurableActivityContext como parâmetro. Também pode vincular o acionador a qualquer outro objeto serializável JSON para transmitir entradas para a função. Em JavaScript, pode aceder a uma entrada através da <activity trigger binding name> propriedade no context.bindings objeto. As funções de atividade só podem ter um único valor transmitido às mesmas. Para transmitir vários valores, tem de utilizar cadeias de identificação, matrizes ou tipos complexos.

Nota

Só pode acionar uma função de atividade a partir de uma função de orquestrador.

Funções de entidade

As funções de entidade definem operações para ler e atualizar pequenos blocos de estado. Muitas vezes, referimo-nos a estas entidades com estado como entidades duráveis. Tal como as funções do orquestrador, as funções de entidade são funções com um tipo de acionador especial, acionador de entidade. Também podem ser invocadas a partir de funções de cliente ou de funções de orquestrador. Ao contrário das funções do orquestrador, as funções de entidade não têm restrições de código específicas. As funções de entidade também gerem explicitamente o estado em vez de representarem implicitamente o estado através do fluxo de controlo.

Nota

As funções de entidade e as funcionalidades relacionadas só estão disponíveis no Durable Functions 2.0 e superior.

Para obter mais informações sobre as funções de entidade, veja o artigo Durable Entities (Entidades Duráveis ).

Funções de cliente

As funções do Orchestrator são acionadas por um enlace de acionador de orquestração e as funções de entidade são acionadas por um enlace de acionador de entidade. Ambos os acionadores funcionam ao reagir às mensagens que são colocadas em fila num hub de tarefas. A principal forma de entregar estas mensagens é ao utilizar um enlace de cliente do orchestrator ou um enlace de cliente de entidade a partir de uma função de cliente. Qualquer função não orquestradora pode ser uma função de cliente. Por exemplo, pode acionar o orquestrador a partir de uma função acionada por HTTP, uma função acionada pelo Hub de Eventos do Azure, etc. O que torna uma função de cliente é a utilização do enlace de saída do cliente durável.

Nota

Ao contrário de outros tipos de funções, o orquestrador e as funções de entidade não podem ser acionados diretamente com os botões no Portal do Azure. Se quiser testar uma função de orquestrador ou entidade no Portal do Azure, tem de executar uma função de cliente que inicie uma função de orquestrador ou entidade como parte da respetiva implementação. Para a experiência de teste mais simples, é recomendada uma função de acionador manual .

Além de acionar funções de orquestrador ou entidade, o enlace de cliente durável pode ser utilizado para interagir com orquestrações e entidades em execução. Por exemplo, as orquestrações podem ser consultadas, terminadas e podem ter eventos gerados. Para obter mais informações sobre a gestão de orquestrações e entidades, veja o artigo Gestão de instâncias.

Passos seguintes

Para começar, crie a sua primeira função durável em C#, JavaScript, Python, PowerShell ou Java.