Partilhar via


Início Rápido: Configure uma aplicação Durable Functions para usar o Azure Functions Durable Task Scheduler

Escreva funções com monitoração de estado em um ambiente sem servidor usando Durable Functions, um recurso do Azure Functions. Os cenários em que as Funções Duráveis são úteis incluem a orquestração de microsserviços e fluxos de trabalho, padrões de estado, como fan-out/fan-in, e tarefas de longa duração.

Você pode usar o Agendador de Tarefas Duráveis como um back-end para suas Funções Duráveis, para armazenar orquestração e estado de tempo de execução da entidade.

Neste guia de início rápido, você irá:

  • Configure um aplicativo de Funções Duráveis existente para usar o Agendador de Tarefas Duráveis.
  • Configure o emulador de tarefa durável para desenvolvimento local.
  • Implante seu aplicativo no Azure no plano do Serviço de Aplicativo usando o Visual Studio Code.
  • Monitore o status do seu aplicativo e hub de tarefas no painel do Agendador de Tarefas Duráveis.

Pré-requisitos

Este início rápido pressupõe que você já tenha um projeto do Azure Functions em seu computador local com:

Se você não atender a esses pré-requisitos, recomendamos que comece com um dos seguintes inícios rápidos para configurar um projeto local do Functions:

Você também precisa:

Adicionar o pacote do Agendador de Tarefas Durável

Instale a versão mais recente do pacote Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged usando o comando dotnet add package :

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease

Observação

A extensão do Agendador de Tarefas Durável requer a versão Microsoft.Azure.Functions.Worker.Extensions.DurableTask ou superior.1.2.2

Em host.json, atualize a propriedade extensionBundle para usar a versão de pré-visualização que contém o pacote Durable Task Scheduler.

{
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.29.0, 5.0.0)"
  }
}

Atualize o host.json

Atualize o host.json da seguinte forma para usar o Agendador de Tarefas Durável como back-end.

{
  "extensions": {
    "durableTask": {
      "hubName": "%TASKHUB_NAME%",
      "storageProvider": {
        "type": "azureManaged",
        "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
      }
    }
  }
}

Configurar local.settings.json

Adicione informações de conexão para desenvolvimento local:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
    "TASKHUB_NAME": "default"
  }
}

Configurar o emulador para Tarefas Duráveis

  1. Puxe a imagem Docker que contenha o emulador.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Execute o emulador.

    docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
    

    A saída a seguir indica que o emulador foi iniciado com êxito.

    Captura de tela mostrando o emulador iniciado com êxito no terminal.

  3. Anote as portas expostas na área de trabalho do Docker. O agendador expõe várias portas para finalidades diferentes:

    • 8080: endpoint gRPC que permite a uma aplicação ligar-se ao agendador
    • 8082: Endpoint para painel de controlo do Agendador de Tarefas Durável

    Captura de tela de portas no Docker.

Teste localmente

  1. Vá para o diretório raiz do seu aplicativo e inicie o Azurite.

    azurite start
    
  2. Execute o aplicativo.

    func start
    

    Você deve ver uma lista das funções em seu aplicativo. Se você criou a sua aplicação seguindo uma das introduções rápidas do Durable Functions, deve ver algo semelhante à seguinte saída:

    Captura de tela das funções listadas ao executar o aplicativo localmente.

  3. Inicie uma instância de orquestração enviando uma solicitação HTTP POST para o endpoint de URL usando a ferramenta de teste HTTP escolhida.

  4. Copie o valor do URL statusQueryGetUri e cole-o na barra de endereço do seu navegador. Você deve ver o status na instância de orquestração:

      {
        "name": "DurableFunctionsOrchestrationCSharp1",
        "instanceId": "b50f8b723f2f44149ab9fd2e3790a0e8",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
          "Hello Tokyo!",
          "Hello Seattle!",
          "Hello London!"
        ],
        "createdTime": "2025-02-21T21:09:59Z",
        "lastUpdatedTime": "2025-02-21T21:10:00Z"
      }
    
  5. Para exibir mais detalhes sobre a instância de orquestração, acesse http://localhost:8082/ o painel do Agendador de Tarefas Duráveis.

  6. Clique no hub de tarefas padrão para ver o seu painel.

Observação

Saiba mais sobre o painel do Agendador de Tarefas Duráveis.

O emulador Durable Task Scheduler armazena dados de orquestração na memória, o que significa que todos os dados são perdidos quando ele é desligado.

Está com problemas nos testes? Consulte o guia de solução de problemas.

Executar seu aplicativo no Azure

Criar os recursos necessários

Crie uma instância do Agendador de Tarefas Durável e o aplicativo Azure Functions no Azure seguindo o fluxo de criação integrado do aplicativo Function. Essa experiência configurará automaticamente o acesso baseado em identidade e configurará as variáveis de ambiente necessárias para que o aplicativo acesse o agendador.

  1. Navegue até ao painel de criação da aplicação de função.

    Captura de ecrã das opções de alojamento para aplicações de funções.

  2. Na lâmina Create Function App (Flex Consumption), preencha a informação no separador Basics .

    Captura de ecrã do separador Básico para criar uma aplicação Função de Plano de Consumo Flexível.

    Campo Descrição
    Subscrição Selecione sua assinatura do Azure.
    Grupo de Recursos Selecione um grupo de recursos existente ou clique em Criar novo para criar um novo.
    Função Nome do aplicativo Crie um nome exclusivo para seu aplicativo de função.
    Deseja implantar código ou imagem de contêiner? Mantenha a opção Código selecionada.
    Região Selecione uma das regiões suportadas.
    Pilha de tempo de execução Selecione o tempo de execução que você está usando para este início rápido.
    Versão Selecione a versão da sua stack de tempo de execução.
    Tamanho da instância Selecione o tamanho de uma instância ou use a seleção padrão. Saiba mais sobre tamanhos de instância.
    Redundância entre Zonas Mantenha a configuração padrão Desativado.
  3. Selecione o separador Funções Duráveis.

  4. Escolha Azure Managed: Durable Task Scheduler como fornecedor de backend para as suas Funções Duradouras.

  5. Crie um recurso de agendador. Esta ação cria automaticamente um hub de tarefas.

    Captura de ecrã da criação de uma aplicação Flex Consumption Function.

    Campo Descrição
    Backend de armazenamento Selecione Azure gerido pela: Agendador de Tarefas Duráveis.
    Região Certifica-te de que as regiões do agendador e da aplicação de funções são as mesmas.
    Agendador de tarefas durável Use o nome do agendador oferecido ou clique em Criar novo para criar um nome personalizado.
    Plano Selecione o plano de preços que melhor se adequa ao seu projeto. Consulte o guia Escolhendo uma estrutura de orquestração para determinar qual o melhor plano para uso em produção.
    Unidades de capacidade Aplicável apenas quando o plano de preços "Dedicado" é selecionado. Pode selecionar até 3 Unidades de Capacidade.
  6. Clique em Verificar + criar para verificar a criação do recurso.

    Uma identidade gerenciada atribuída pelo usuário com a permissão RBAC (controle de acesso baseado em função) necessária é criada automaticamente e adicionada ao aplicativo Função. Você pode encontrar na exibição de resumo informações relacionadas ao recurso de identidade gerenciado, como:

    • A função atribuída a ele (Contribuidor de Dados de Tarefa Durável)

    • A atribuição limitada ao nível do hub de tarefas

      Captura de ecrã dos campos e propriedades escolhidos e em revisão no separador Revisão e criação.

  7. Clique em Criar quando a validação for aprovada.

A implantação de recursos pode levar cerca de 15 a 20 minutos. Quando isso estiver concluído, você poderá implantar seu aplicativo no Azure.

Implantar seu aplicativo de função no Azure

Importante

A implementação numa aplicação de funções existente sempre sobrescreve o conteúdo dessa aplicação no Azure.

  1. Na paleta de comandos, insira e selecione Azure Functions: Deploy to Function App.

  2. Selecione o aplicativo de função que você acabou de criar. Quando for solicitado para substituir implantações anteriores, selecione Implantar para transferir o seu código de função para o novo recurso da aplicação de funções.

  3. Quando a implantação estiver concluída, selecione Exibir Saída para exibir os resultados da criação e da implantação, incluindo os recursos do Azure que você criou. Se você perder a notificação, selecione o ícone de sino no canto inferior direito para vê-lo novamente.

    Captura de ecrã da janela de saída de visualização.

Apps no plano Functions Premium

Se seu aplicativo estiver sendo executado no plano Functions Premium, ative a configuração Monitoramento de escala de tempo de execução após a implantação para garantir que seu aplicativo seja dimensionado automaticamente com base na carga:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

Testar seu aplicativo de função

Execute o seguinte comando para obter o URL da sua função:

az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME>  --query '[].{Function:name, URL:invokeUrlTemplate}' --output json

Verificar o estado da orquestração

Verifique o status da instância de orquestração e os detalhes da atividade no painel do Agendador de Tarefas Duráveis. Para aceder ao painel é necessário iniciar sessão.

Observação

A instrução a seguir mostra uma atribuição de função limitada a um hub de tarefas específico. Se você precisar de acesso a todos os hubs de tarefas em um agendador, execute a atribuição no nível do agendador.

  1. Navegue até ao recurso Durable Task Scheduler no portal.

  2. Clique no nome de um hub de tarefas.

  3. No menu à esquerda, selecione Controle de acesso (IAM).

  4. Clique em Adicionar para adicionar uma atribuição de função.

    Captura de tela da adição da atribuição de função no painel Controle de Acesso no portal.

  5. Pesquise e selecione Colaborador de Dados de Tarefa Durável. Clique em Next.

    Captura de ecrã a mostrar a seleção da atribuição da função Colaborador de Dados de Tarefas Duráveis no portal.

  6. Na guia Membros, para Atribuir acesso a, selecione Usuário, grupo ou entidade de serviço.

  7. Para Membros, clique em + Selecionar membros.

  8. No painel Selecionar membros , procure o seu nome ou e-mail:

    Captura de ecrã a mostrar a seleção do tipo de identidade gerida atribuída pelo utilizador no portal.

  9. Escolha seu e-mail e clique no botão Selecionar .

  10. Clique em Rever e atribuir para concluir a atribuição do papel.

  11. Depois que a função for atribuída, clique em Visão geral no menu esquerdo do recurso do hub de tarefas e navegue até a URL do painel localizada na seção superior do Essentials .

Limpar recursos

Se você não precisar mais dos recursos que criou para concluir o início rápido, para evitar custos relacionados em sua assinatura do Azure, exclua o grupo de recursos e todos os recursos relacionados.

Próximos passos