Depure e gerencie orquestrações usando o painel do Durable Task Scheduler

O painel Agendador de Tarefas Duráveis permite observar orquestrações em execução, inspecionar o histórico de execução e entradas/saídas de atividade e gerenciar o ciclo de vida da orquestração (pausar, retomar, encerrar) — tudo de um navegador.

O painel está disponível em dois ambientes:

Ambiente URL Autenticação
Emulador local http://localhost:8082 Nenhum necessário
Azure https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME> Requer a função Colaborador de Dados de Tarefa Durável

Para obter mais informações sobre o emulador, consulte Emulador para desenvolvimento local.

Neste artigo, você aprenderá como:

  • Acesse o painel localmente ou em Azure.
  • Atribua a função Colaborador de Dados de Tarefa Durável à identidade de desenvolvedor.
  • Monitore o status da orquestração, filtre instâncias e inspecione o histórico de execução.
  • Gerencie as orquestrações (pausar, retomar, encerrar, gerar eventos).

Pré-requisitos

Antes de começar:

Acessar o painel localmente

Se você estiver usando o emulador do Agendador de Tarefas Duráveis, o painel estará disponível em:

http://localhost:8082

Nenhuma autenticação ou atribuição de função é necessária para o desenvolvimento local.

Atribuir funções de acesso ao painel (Azure)

Para acessar o painel de um agendador hospedado no Azure, atribua a função Colaborador de Dados de Tarefas Duráveis à identidade do desenvolvedor (email).

  1. Defina o destinatário como sua identidade de desenvolvedor.

    assignee=$(az ad user show --id "someone@microsoft.com" --query "id" --output tsv)
    
  2. Defina o escopo. Conceder acesso no escopo do agendador dá acesso a todos os hubs de tarefas dentro desse agendador.

    Hub de Tarefas

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASK_HUB_NAME"
    

    Agendador

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"
    
  3. Conceda acesso. Execute o comando a seguir para criar a atribuição de função e conceder acesso.

    az role assignment create \
      --assignee "$assignee" \
      --role "Durable Task Data Contributor" \
      --scope "$scope"
    

    Saída esperada

    O exemplo de saída a seguir mostra uma identidade de desenvolvedor atribuída à função de Colaborador de Dados de Tarefas Duráveis no nível do agendador.

    {
      "condition": null,
      "conditionVersion": null,
      "createdBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "createdOn": "2024-12-20T01:36:45.022356+00:00",
      "delegatedManagedIdentityResourceId": null,
      "description": null,
      "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID",
      "name": "ROLE_ASSIGNMENT_ID",
      "principalId": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "principalName": "YOUR_EMAIL",
      "principalType": "User",
      "resourceGroup": "YOUR_RESOURCE_GROUP",
      "roleDefinitionId": "/subscriptions/YOUR_SUBSCRIPTION/providers/Microsoft.Authorization/roleDefinitions/ROLE_DEFINITION_ID",
      "roleDefinitionName": "Durable Task Data Contributor",
      "scope": "/subscriptions/YOUR_SUBSCRIPTION/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME",
      "type": "Microsoft.Authorization/roleAssignments",
      "updatedBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "updatedOn": "2024-12-20T01:36:45.022356+00:00"
    }
    
  4. Depois de conceder acesso, abra o painel em:

    https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME>
    

    Substitua <SCHEDULER_ENDPOINT> pelo ponto de extremidade do agendador (por exemplo) https://myscheduler.westus2.durabletask.ioe <TASK_HUB_NAME> pelo nome do hub de tarefas.

    De forma alternativa, navegue até https://dashboard.durabletask.io/ e insira o ponto de extremidade do agendador e o nome do hub de tarefas no formulário de conexão.

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.

Monitorar o progresso da orquestração e o histórico de execução

O painel permite que você monitore o progresso da orquestração e examine o histórico de execução. Você pode filtrar a lista de orquestração usando os seguintes critérios:

  • ID da instância – pesquise uma orquestração específica por ID exclusiva.
  • Nome da orquestração – Filtrar pelo nome do tipo de orquestração.
  • Status — Filtrar por status de runtime (Executando, Concluído, Com Falha, Encerrado, Pendente, Suspenso).
  • Faixa de tempo criada – limitar os resultados a um intervalo de tempo.

Captura de tela do painel listando o histórico e o status da orquestração com opções de filtro.

Exibir entradas e saídas de orquestração:

Captura de tela do painel listando o histórico de orquestração e as entradas e saídas de status.

Exibição detalhada da execução da orquestração

Você pode examinar instâncias de orquestração para visualizar os detalhes da execução e o progresso da atividade. Essa exibição ajuda você a diagnosticar problemas ou obter visibilidade do status de uma orquestração.

Na imagem a seguir, o modo de exibição de Linha do tempo de uma execução de orquestração. Nesta orquestração "ProcessDocument", a atividade "WriteDoc" foi tentada três vezes (com falha) com cinco segundos entre cada tentativa.

Captura de tela do painel mostrando a linha do tempo de execução da orquestração.

Você também pode exibir entradas e saídas de atividades em uma orquestração:

Captura de tela do painel mostrando entradas e saídas de atividade.

Outras exibições da sequência de execução da orquestração

A visão de Histórico mostra a sequência detalhada de eventos, marcas temporais e carga útil:

Captura de tela do painel mostrando os detalhes da instância de orquestração.

O modo de exibição Sequência fornece outra maneira de visualizar a sequência de eventos:

Captura de tela do painel mostrando a visualização de sequência de orquestração.

Gerenciamento de orquestração

O painel inclui recursos para gerenciar o ciclo de vida de orquestração sob demanda. As ações disponíveis incluem:

  • Suspender – pausar uma orquestração em execução. Ele permanece na memória, mas interrompe o processamento de eventos até ser retomado.
  • Retomar – Continuar uma orquestração suspensa anteriormente.
  • Encerrar – interrompa imediatamente uma orquestração com uma cadeia de caracteres de motivo opcional.
  • Acionar evento – Enviar um evento externo nomeado (com conteúdo JSON opcional) para uma orquestração em execução ou suspensa.

Captura de tela do painel mostrando os botões Suspender, Retomar, Encerrar e Levantar Evento para gerenciar orquestrações.

Próximas Etapas 

Para o Agendador de Tarefas Duráveis para o Durable Functions:

Para o Agendador de Tarefas Duráveis para os SDKs de Tarefas Duráveis: