Compartilhar via


Início Rápido: Configurar um Aplicativo Durable Functions para utilizar o Agendador de Tarefas Duráveis das Functions do Azure

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

Você pode usar o Agendador de Tarefas Duráveis como um back-end do seu Durable Functions, para armazenar o estado de runtime de orquestração e entidade.

Neste início rápido, você:

  • 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 aplicativo e do 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 você comece com um dos seguintes inícios rápidos para configurar um projeto local do Functions:

Você também precisará de:

Adicionar o pacote agendador de tarefas duráveis

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áveis requer Microsoft.Azure.Functions.Worker.Extensions.DurableTask versão 1.2.2 ou superior.

Em host.json, atualize a extensionBundle propriedade para usar a versão prévia que contém o pacote do Agendador de Tarefas Duráveis:

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

Atualizar o host.json

Atualize o host.json da seguinte maneira para usar o Agendador de Tarefas Duráveis como o backend.

{
  "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 de Tarefas Duráveis

  1. Efetue pull da imagem do docker que contém o emulador.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Executar 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 diferentes finalidades:

    • 8080: ponto de extremidade gRPC que permite que um aplicativo se conecte ao agendador
    • 8082: ponto de extremidade para o painel do Agendador de Tarefas Duráveis

    Captura de tela das portas no Docker.

Testar localmente

  1. Vá para o diretório raiz do 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 seu aplicativo seguindo um dos tutoriais de início rápido do Durable Functions, deverá ver algo semelhante à saída a seguir:

    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 ponto de extremidade de URL usando a ferramenta de teste HTTP escolhida.

  4. Copie o valor da URL para statusQueryGetUri e cole-o na barra de endereços do 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 ver mais detalhes sobre a instância de orquestração, acesse http://localhost:8082/ e vá para o painel do Agendador de Tarefas Duráveis.

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

Observação

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

O emulador do Agendador de Tarefas Duráveis armazena dados de orquestração na memória, o que significa que todos os dados são perdidos quando são desligados.

Executando testes de problemas? Confira o guia de solução de problemas.

Executar seu aplicativo no Azure

Criar recursos necessários

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

  1. Navegue até a página de criação do aplicativo Function.

    Captura de tela das opções de hospedagem para aplicativos de funções.

  2. Na lâmina Criar Aplicativo Function (Consumo Flexível), preencha as informações na guia Básico.

    Captura de tela da guia

    Campo Descrição
    Subscrição Selecione sua assinatura do Azure.
    Grupo de Recursos Selecione um grupo de recursos ou clique em Criar novo para criar um.
    Nome do aplicativo de funções Crie um nome exclusivo para seu aplicativo de funções.
    Deseja implantar código ou imagem de contêiner? Mantenha a opção Código selecionada.
    Região Selecione uma das regiões com suporte.
    Pilha de runtime Selecione o runtime que você está usando para este início rápido.
    Versão Selecione sua versão de pilha de runtime.
    Tamanho da instância Selecione um tamanho de instância ou use a seleção padrão. Saiba mais sobre tamanhos de instância.
    Redundância de Zona Deixe como a configuração padrão Desabilitada .
  3. Selecione a guia Durable Functions.

  4. Escolha o Azure gerenciado: Agendador de Tarefas Duráveis como o provedor de back-end para suas Funções Duráveis.

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

    Captura de tela da criação de um aplicativo Function de Consumo Flexível.

    Campo Descrição
    Back-end de armazenamento Selecione gerenciado pelo Azure: Agendador de Tarefas Duráveis.
    Região Verifique se as regiões do agendador e do aplicativo de funções são as mesmas.
    Agendador de Tarefas Duráveis 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 ajusta ao seu projeto. Verifique o guia escolher uma estrutura de orquestração para determinar qual plano é melhor para uso em produção.
    Unidades de Capacidade Aplicável somente quando o plano de preços "Dedicado" é selecionado. Você pode selecionar até três Unidades de Capacidade.
  6. Clique em Examinar + criar para examinar a criação de recursos.

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

    • A função atribuída a ela (Colaborador de Dados de Tarefas Duráveis)

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

      Captura de tela dos campos e propriedades escolhidos e em revisão na guia Examinar + criar.

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

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

Implante o aplicativo de funções no Azure

Importante

A implantação em um aplicativo de funções existente sempre substitui o conteúdo do aplicativo no Azure.

  1. Na paleta de comandos, insira e, em seguida, selecione Azure Functions: implantar no Aplicativo de Funções.

  2. Selecione o aplicativo de funções que você acabou de criar. Quando solicitado sobre a substituição de implantações anteriores, selecione Implantar para implantar seu código de função no novo recurso do aplicativo de funções.

  3. Após a implantação ser concluída, selecione Ver a saída para ver os resultados da criação e da implantação, incluindo os recursos do Azure que você criou. Se você não viu a notificação, selecione o ícone do sino no canto inferior direito para vê-la novamente.

    Captura de tela da janela Exibir saída.

Apps no plano do Functions Premium

Se o aplicativo estiver em execução no plano do Functions Premium, ative a configuração de Monitoramento de Escala do Runtime após a implantação para garantir que o aplicativo faça dimensionamentos automáticos 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ções

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

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

Verificar o status 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. Acessar o painel exige que você faça logon.

Observação

A instrução a seguir mostra uma atribuição de função com escopo para 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é o recurso Agendador de Tarefas Duráveis no portal.

  2. Clique em um nome de 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 da Tarefa Durável. Clique em Próximo.

    Captura de tela da seleção da atribuição de função Colaborador de Dados da Tarefa Durável 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, pesquise seu nome ou email:

    Captura de tela da seleção do tipo de identidade gerenciada atribuído pelo usuário no portal.

  9. Escolha seu email e clique no botão Selecionar.

  10. Clique em Examinar + atribuir para concluir a atribuição da função.

  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 os recursos

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

Próximas etapas