image

Access unlimited bootcamps and 650+ courses forever

60
%OFF
Article image
Roberto Melo
Roberto Melo20/03/2025 15:02
Share
Microsoft Certification Challenge #3 DP-100Recommended for youMicrosoft Certification Challenge #3 DP-100

O que são as Durable Functions na plataforma Azure?

    As Durable Functions são um recurso do Azure Functions que permite escrever funções com estado em um ambiente de computação sem servidor. A extensão permite definir fluxos de trabalho com estado pela escrita de funções de orquestrador e entidades com estado pela escrita de funções de entidade usando o modelo de programação do Azure Functions. Nos bastidores, a extensão gerencia o estado, os pontos de verificação e as reinicializações para você, permitindo que você se concentre na lógica de negócios.

    O Durable Functions foi projetado para trabalhar com todas as linguagens de programação do Azure Functions, mas pode ter requisitos mínimos diferentes para cada uma delas. A tabela a seguir mostra as configurações mínimas de aplicativo com suporte:

    • .NET/C#/F#
    • JavaScript/TypeScript 
    • Python
    • Java

    Assim como o Azure Functions, há modelos para ajudá-lo a desenvolver as Durable Functions usando o Visual Studio, o Visual Studio Code e o portal do Azure.

    Padrões de aplicativo

    O principal caso de uso das Durable Functions é simplificar requisitos complexos de coordenação com estado em aplicativos sem servidor. As seguintes seções descrevem padrões de aplicativo típicos que podem se beneficiar com as Durable Functions:

    • Encadeamento de funções
    • Fan-out/fan-in
    • APIs HTTP assíncronas
    • Monitoring
    • Interação humana
    • Agregador (entidades com estado)

    Padrão 1: encadeamento de funções

    No padrão de encadeamento de funções, uma sequência de funções é executada em uma ordem específica. Nesse padrão, a saída de uma função é aplicada à entrada de outra função. O uso de filas entre cada função garante que o sistema permaneça durável e escalonável, mesmo que haja um fluxo de controle de uma função para outra.

    image

    Um diagrama do padrão de encadeamento de funções

    Use as Durable Functions para implementar o padrão de encadeamento de funções de forma concisa, conforme mostrado no exemplo a seguir.

    Nesse exemplo, os valores F1, F2, F3 e F4 são os nomes de outras funções no mesmo aplicativo de funções. Implemente o fluxo de controle usando construtos de codificação imperativa normal. O código é executado de cima para baixo. Ele pode envolver a semântica do fluxo de controle da linguagem existente, como condicionais e loops. Você pode incluir a lógica de tratamento de erro em blocos try/catch/finally.

    const df = require("durable-functions");
    
    
    df.app.orchestration("chainingDemo", function* (context) {
      try {
          const x = yield context.df.callActivity("F1");
          const y = yield context.df.callActivity("F2", x);
          const z = yield context.df.callActivity("F3", y);
          return yield context.df.callActivity("F4", z);
      } catch (error) {
          // Error handling or compensation goes here.
      }
    });
    

    É possível usar o objeto context.df para invocar outras funções por nome, passar parâmetros e retornar a saída da função. Cada vez que o código chama yield, a estrutura das Durable Functions cria um ponto de verificação para o progresso da instância da função atual. Se o processo ou a máquina virtual for reciclada no meio da execução, a instância da função retomará na chamada yield anterior. Para obter mais informações, confira a próxima seção, Padrão nº2: Fan-out/fan-in.

    Fonte: https://learn.microsoft.com/pt-br/azure/azure-functions/durable/durable-functions-overview?tabs=in-process%2Cnodejs-v3%2Cv1-model&pivots=javascript

    Share
    Recommended for you
    Microsoft AI for Tech - Azure Databricks
    Microsoft Certification Challenge #3 DP-100
    Decola Tech 2025
    Comments (1)
    DIO Community
    DIO Community - 21/03/2025 11:55

    Roberto, você fez uma excelente introdução ao conceito de Durable Functions no Azure. A explicação sobre como esse recurso pode ajudar no gerenciamento de fluxos de trabalho com estado é bastante útil.

    Gostaria de saber, qual foi o maior benefício que você percebeu ao usar as Durable Functions em projetos reais? Além disso, quais desafios você encontrou ao integrar esse recurso com outras tecnologias, como bancos de dados ou sistemas de monitoramento, e como os superou?

    Recommended for youMicrosoft Certification Challenge #3 DP-100