1) Azure Durable Functions permite definir workflows e fluxos de trabalho complexos em código usando funções Azure. 2) Isso inclui encadeamento de funções, execução paralela, tratamento de erros e controle centralizado através da função orquestradora. 3) Durable Functions gerencia o estado do fluxo de trabalho para permitir que as funções sejam executadas de forma assíncrona e independente.
2. O que são “Durable Functions”
É uma extensão para
Azure Functions
Escrever funções
com estado em um
ambiente serverless
Definir workflows em
código
3. O que são Azure Functions?
Functions as a Service
(FaaS)
Triggers
Timer
HTTP Request
Queue Message
Languages
C#, F#, Java,
JavaScript,
TypeScript, Python,
PowerShell, Go e
Rust
Bindings
SendGrid
EventHub
RabbitMQ
4. O que é “Serverless”?
Deploy sem precisar
se preocupar com
infraestrutura
Auto scaling
Modelo de
precificação
baseado em
consumo
5. Porque usar Durable Function?
Encadeamento
de Funções
Workflow
Fan-out
Fan-in
Workflow
6. Noções Básicas de Durable Functions
Defina fluxos de trabalho no código
- Execução paralela
- Tratamento de erros
- Controle em um único ponto através da “Orquestrator Function”
Suporta vários padrões de fluxos de trabalho
- Fan Out/Fan In, Monitors, etc.
Resolve o problema do estado
- Acompanha o progresso do fluxo de trabalho
7. Benefícios
Durable
Functions
1. Defina fluxos de trabalho no código
- Fluidez no entendimento do quadro geral
- Ótima separação de responsabilidades
2. Fluxos de trabalho complexos fáceis de implementar
- Encadeamento de Funções
- Fan-Out e Fan-In
- Monitoramento
3. Consolidação do tratamento de exceções
4. Verifique o progresso ou cancele os fluxos de trabalho
5. Gerencia o estado para você
8. Conceitos Chave Durable Function
Orquestration Function
- Define o fluxo de trabalho
- Aciona as funções de atividade
- Dorme durante as atividades
Activity Function
- Executa uma única etapa em um fluxo de trabalho
- Pode receber e/ou retornar dados
Starting "Orquestrations"
- DurableClient Binding
9. Exemplo Durable Function Workflow
Durable
Client
Activity
Function 1
Activity
Function 2
Activity
Function 3
Event Hub Trigger
Azure Function
Orquestrator
Function
10. Armazenamento de Estado Durable Functions
Filas de armazenamento
- Mensagens para acionar a próxima função
Tabelas de armazenamento
- Armazene o estado das orquestrações
Event Sourcing
- Nunca atualiza linhas, apenas acrescenta novas
- Armazene o histórico de execução completo
Durable Functions usam o armazenamento do Azure
12. Conta de armazenamento Durable Functions
Você fornece a string de conexão
- Veja os detalhes com o Azure Storage Explorer
"Task Hub"
- O armazenamento usado por funções duráveis
- Você pode usar vários hubs de tarefas
- Eles podem compartilhar uma conta de armazenamento
17. Demo
Criar um fluxo de trabalho
- DurableClient binding
- Dados de entrada do Orchestrator
- CreateCheckStatusResponse
- ActivityTrigger
- Recebendo dados de entrada
- Retornando dados de saída
18. Regras do Orchestrator Function
Deve ser determinista
- Toda a função será “repetida"
Não
- Usar data e hora atual
- Gerar números aleatórios ou guids
- Acessar armazenamentos de dados (por exemplo, banco
de dados, configuração)
Fazer
- Use IDurableOrchestrationContext.CurrentUtcDateTime
- Passe a configuração em sua função de orquestrador
- Recuperar dados em funções de atividade
19. Regras do Orchestrator Function
Não pode ser bloqueante
- Sem E/S para o disco ou rede
Não inicie operações assíncronas
- Exceto na API IDurableOrchestrationContext
- Sem Task.Run, Task.Delay, HttpClient.SendAsync
Não criar loops infinitos
- O histórico do evento precisa ser reproduzível
- ContinueAsNew deve ser usado em seu lugar
- Sem Thread.Sleep
21. Demo Implementar fan-out/fan-in
- A primeira função de atividade executa
algum processamento de entrada de dados.
- A função do orquestrador chama as funções
de atividade em paralelo.
- O orquestrador espera que todas as
atividade sejam concluídas, para chamar a
última função de atividade, concluindo assim
o fluxo.
22. Implantando Durable Functions
Passo 1: Deploy infraestrutura
Passo 2: Publicar o código
App Service Plan
Function App
Storage Account
Application Insights
Database
Deploy manual via Visual Studio
Deploy automático
- Azure CLI
- Azure Functions Core Tools