SuperAPI AI 工具集

workflow-local-dev

部署与运维

查看项目

更新于 10-16 09:21

技能介绍

用途

该技能面向在 DAP 工作区中进行本地工作流平台开发的场景,服务于前端、后端和基础设施团队。它主要用于在本地容器运行失败或需要调试运行时行为时,提供对本地 Kubernetes(Kind)集群、Tilt 服务以及相关基础设施的访问与操作支持。

主要能力

  • 访问 Kubernetes(Kind)集群,查看 Pod 状态、描述 Pod、查看日志。
  • 通过 Tilt 触发组件重建或重启,查看组件日志。
  • 提供本地部署的工作流服务作为共享依赖,包括:workflow-catalog、workflow-executions-api、workflow-engine-worker、workflow-consumer、workflow-validator、workflows-worker、standalone-tasks-worker。
  • 提供常用操作的实用脚本:检查 Pod 状态、重启服务、跟踪服务日志、查询数据库。
  • 支持排查 Temporal 工作流(通过 Temporal UI)和 Pulsar 消息。
  • 在 Kubernetes MCP 服务器启用时,可使用 MCP 工具替代 shell 命令,直接与集群交互。

使用方式

关键命令

任务 命令
检查 Pod kubectl get pods --context kind-kind
重启组件 tilt trigger workflow-<service>
查看组件日志 tilt logs workflow-<service>

实用脚本

检查 Pod 状态:

bash .cursor/skills/workflow-local-dev/scripts/check-pods.sh

重启服务:

bash .cursor/skills/workflow-local-dev/scripts/restart-service.sh <service-name>
# 示例:bash .cursor/skills/workflow-local-dev/scripts/restart-service.sh catalog

跟踪服务日志:

bash .cursor/skills/workflow-local-dev/scripts/tail-logs.sh <service-name>
# 示例:bash .cursor/skills/workflow-local-dev/scripts/tail-logs.sh executions-api

查询数据库:

bash .cursor/skills/workflow-local-dev/scripts/db-query.sh "<SQL query>"
# 示例:bash .cursor/skills/workflow-local-dev/scripts/db-query.sh "SELECT * FROM workflow_engine.workflows ORDER BY created_at DESC LIMIT 5"

开发工作流

当本地容器失败或需要调试运行时行为时,主要使用以下流程:

  1. 捕获当前状态:kubectl get pods --context kind-kind
  2. 重建/重启组件:tilt trigger workflow-<service>
  3. 查看日志或健康状态:kubectl logs -f <pod> --context kind-kind
  4. 检查配置或数据(如需要):bash .cursor/skills/workflow-local-dev/scripts/db-query.sh "<SQL query>"

故障排查

Pod 问题:

kubectl get pods --context kind-kind
kubectl describe pod <pod-name> --context kind-kind
kubectl logs -f <pod-name> --context kind-kind

Temporal 工作流:

打开 http://localhost:8081(Temporal UI),按工作流 ID 搜索。

数据库状态:

# 使用 db-query 脚本(在 postgres pod 内运行 psql)
bash .cursor/skills/workflow-local-dev/scripts/db-query.sh "SELECT * FROM workflow_engine.workflows ORDER BY created_at DESC LIMIT 5"

Pulsar 消息:

pulsar-admin topics stats persistent://public/dap/<topic>
pulsar-client consume persistent://public/dap/<topic> -s test-sub -n 10

使用 Kubernetes MCP(在可用时)

如果 Kubernetes MCP 服务器已启用,可以使用 MCP 工具替代 shell 命令,获得更集成的体验。MCP 默认使用 kind-kind 上下文。

列出 Pod:

Tool: pods_list
Arguments: { "labelSelector": "app=workflow-catalog" }

或列出所有 Pod:

Tool: pods_list
Arguments: {}

获取 Pod 日志:

Tool: pods_log
Arguments: {
  "name": "workflow-catalog-xxxxx",
  "namespace": "default",
  "tail": 100
}

获取之前容器的日志(崩溃后):

Tool: pods_log
Arguments: {
  "name": "workflow-catalog-xxxxx",
  "namespace": "default",
  "previous": true
}

在 Pod 中执行命令(例如数据库查询):

Tool: pods_exec
Arguments: {
  "name": "postgres-xxxxx",
  "namespace": "default",
  "command": ["psql", "-U", "postgres", "-d", "temporal", "-c", "SELECT * FROM workflow_engine.workflows ORDER BY created_at DESC LIMIT 5"]
}

删除 Pod(强制重启):

Tool: pods_delete
Arguments: {
  "name": "workflow-catalog-xxxxx",
  "namespace": "default"
}

获取 Pod 详情:

Tool: pods_get
Arguments: {
  "name": "workflow-catalog-xxxxx",
  "namespace": "default"
}

列出集群事件(故障排查):

Tool: events_list
Arguments: { "namespace": "default" }

注意:使用 MCP 工具时无需指定上下文,因为它默认使用 kind-kind。当希望智能体直接与集群交互而不启动 shell 进程时,MCP 方式很有用。

适用场景

  • 在 DAP 工作区中进行本地工作流平台开发。
  • 本地容器运行失败时进行调试。
  • 需要检查 Pod 状态、重启服务、查看日志、查询数据库。
  • 排查 Temporal 工作流或 Pulsar 消息问题。
  • 希望通过 Kubernetes MCP 工具直接与集群交互。

限制

  • 该技能主要面向 DAP 工作区环境,依赖本地 Kubernetes(Kind)集群和 Tilt 服务。
  • 部分功能(如 Kubernetes MCP)仅在 MCP 服务器启用时可用。
  • 关于完整服务 URL 和基础设施细节,请参阅 reference.md。
  • 资料中未提供收费、价格、平台支持范围等信息。