使用 Durable Task Scheduler 仪表板调试和管理业务流程

Durable Task Scheduler 仪表板允许你观察正在运行的业务流程、检查执行历史记录和活动输入/输出,以及管理业务流程生命周期(暂停、恢复、终止)(全部来自浏览器)。

仪表板在两个环境中可用:

环境 URL 身份验证
本地模拟器 http://localhost:8082 不需要
Azure https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME> 需要 持久任务数据参与者角色

有关模拟器的详细信息,请参阅 模拟器进行本地开发

在这篇文章中,你将学会如何:

  • 在本地或Azure上访问仪表板。
  • 将持久任务数据参与者角色分配给开发人员标识。
  • 监视业务流程状态、筛选实例和检查执行历史记录。
  • 管理业务流程(暂停、恢复、终止、引发事件)。

先决条件

开始之前:

在本地访问仪表板

如果使用 Durable Task Scheduler 模拟器,仪表板可以在以下地址访问:

http://localhost:8082

本地开发不需要身份验证或角色分配。

分配仪表板访问角色(Azure)

若要访问 Azure 托管的计划程序仪表板,请将 Durable Task Data Contributor 角色分配给您的开发人员身份(电子邮件)。

  1. 将被分配者设置为开发人员标识。

    assignee=$(az ad user show --id "someone@microsoft.com" --query "id" --output tsv)
    
  2. 设置范围。 授予对计划程序范围的访问权限可授予对该计划程序 中的所有 任务中心的访问权限。

    任务中心

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

    调度器

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"
    
  3. 授予访问权限。 运行以下命令以创建角色分配并授予访问权限。

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

    预期输出

    以下输出示例显示了在计划程序级别上分配有持久任务数据参与者角色的开发人员标识:

    {
      "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. 授予访问权限后,在以下位置打开仪表板:

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

    <SCHEDULER_ENDPOINT> 替换为计划程序的终结点(例如 https://myscheduler.chinanorth3.durabletask.io),并将 <TASK_HUB_NAME> 替换为您的任务中心的名称。

    或者,请导航到 https://dashboard.durabletask.io/,然后在连接表单中输入计划程序终结点和任务中心名称。

注意

以下说明展示了针对特定任务中心的角色分配。 如果需要在计划程序中访问所有任务集线器,请在计划程序级别上执行分配。

  1. 请进入门户上的持久任务计划程序资源。

  2. 单击任务中心名称。

  3. 在左侧菜单中,选择“访问控制(IAM)”。

  4. 单击“ 添加” 以添加角色分配。

    在门户中的“访问控制”窗格中添加角色分配的屏幕截图。

  5. 搜索并选择“持久任务数据参与者”。 单击 “下一步”

    在门户中选择“持久任务数据参与者”角色分配的屏幕截图。

  6. 在“成员”选项卡中,对于“将访问权限分配给”,请选择“用户、组或服务主体”

  7. 对于“成员”,单击“+ 选择成员”

  8. “选择成员 ”窗格中,搜索姓名或电子邮件:

    在门户中选择用户分配的托管标识类型的屏幕截图。

  9. 选择电子邮件并单击 “选择 ”按钮。

  10. 单击“ 查看 + 分配 ”完成角色分配。

  11. 分配角色后,单击任务中心资源的左侧菜单中的 “概述 ”,并导航到位于“ Essentials ”顶部的仪表板 URL。

监控编排进度和执行历史

使用仪表板可以监视业务流程进度并查看执行历史记录。 可以使用以下条件筛选编排列表:

  • 实例 ID — 按其唯一 ID 搜索特定业务流程。
  • 业务流程名称 - 按业务流程类型名称进行筛选。
  • 状态 - 按运行时状态(正在运行、已完成、失败、已终止、挂起、已挂起)进行筛选。
  • 创建的时间范围 - 将结果缩小到时间范围。

仪表板的屏幕截图,其中列出了包含筛选器选项的业务流程历史记录和状态。

查看编排输入和输出:

仪表板的屏幕截图,其中列出了业务流程历史记录和状态输入和输出。

业务流程执行的详细视图

你可以深入了解业务流程实例以查看执行的详细信息和活动进度。 此视图可帮助你诊断问题或了解业务流程的状态。

下图是业务流程执行的“时间轴”视图。 在此“ProcessDocument”业务流程中,“WriteDoc”活动重试了三次(均失败),每次重试间隔五秒钟。

显示业务流程执行时间线的仪表板的屏幕截图。

你还可以在业务流程中查看活动的输入和输出。

显示活动输入和输出的仪表板的屏幕截图。

业务流程执行序列的其他视图

“历史记录”视图显示详细的事件序列、时间戳和有效负载:

仪表板的屏幕截图,其中显示了业务流程实例详细信息。

序列视图提供了另一种可视化事件序列的方法:

仪表板的屏幕截图显示了编排序列视图。

编排管理

仪表板包含按需管理编排生命周期的功能。 可用操作包括:

  • 暂停 - 暂停正在运行的编排。 它保留在内存中,但会停止处理事件,直到恢复。
  • 恢复 - 继续以前挂起的业务流程。
  • 终止 — 使用可选原因字符串立即停止编排过程。
  • 引发事件 — 将命名的外部事件(具有可选 JSON 有效负载)发送到正在运行的或挂起的流程编排。

仪表板的屏幕截图,其中显示了用于管理业务流程的“挂起”、“恢复”、“终止”和“引发事件”按钮。

后续步骤

对于 Durable Functions 的持久任务计划程序:

对于持久任务 SDK 的持久任务计划程序: