Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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:
- Durable Functions adicionado ao seu projeto, incluindo:
- Uma função de orquestrador.
- Uma função de cliente que dispara o aplicativo Durable Functions.
- O projeto configurado para depuração local.
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:
- Docker instalado para executar o emulador do Agendador de Tarefas Duráveis.
- Azurite instalado.
- Uma ferramenta de teste para HTTP que mantém seus dados seguros.
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
Efetue pull da imagem do docker que contém o emulador.
docker pull mcr.microsoft.com/dts/dts-emulator:latestExecutar o emulador.
docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latestA saída a seguir indica que o emulador foi iniciado com êxito.
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
-
Testar localmente
Vá para o diretório raiz do aplicativo e inicie o Azurite.
azurite startExecute o aplicativo.
func startVocê 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:
Inicie uma instância de orquestração enviando uma solicitação HTTP
POSTpara o ponto de extremidade de URL usando a ferramenta de teste HTTP escolhida.Copie o valor da URL para
statusQueryGetUrie 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" }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.
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.
Navegue até a página de criação do aplicativo Function.
Na lâmina Criar Aplicativo Function (Consumo Flexível), preencha as informações na guia Básico.
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 . Selecione a guia Durable Functions.
Escolha o Azure gerenciado: Agendador de Tarefas Duráveis como o provedor de back-end para suas Funções Duráveis.
Crie um recurso de agendador. Essa ação cria automaticamente um hub de tarefas.
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. 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
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.
Na paleta de comandos, insira e, em seguida, selecione Azure Functions: implantar no Aplicativo de Funções.
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.
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.
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.
Navegue até o recurso Agendador de Tarefas Duráveis no portal.
Clique em um nome de hub de tarefas.
No menu à esquerda, selecione Controle de acesso (IAM).
Clique em Adicionar para adicionar uma atribuição de função.
Pesquise e selecione Colaborador de Dados da Tarefa Durável. Clique em Próximo.
Na guia Membros, para Atribuir acesso a, selecione Usuário, grupo ou entidade de serviço.
Para Membros, clique em + Selecionar membros.
No painel Selecionar membros, pesquise seu nome ou email:
Escolha seu email e clique no botão Selecionar.
Clique em Examinar + atribuir para concluir a atribuição da função.
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
- Saiba mais sobre o painel do Agendador de Tarefas Duráveis.
- Solucione os erros que você pode encontrar ao usar o Agendador de Tarefas Duráveis.