手把手教你用Postman调试DolphinScheduler 3.x创建任务API(附数据库查Code指南)
手把手教你用Postman调试DolphinScheduler 3.x创建任务API附数据库查Code指南在分布式任务调度系统的日常运维中API调试是开发者和运维人员必须掌握的硬核技能。DolphinScheduler作为一款开源的分布式易扩展可视化工作流任务调度平台其API的灵活调用能极大提升自动化运维效率。本文将带您从零开始完整走通创建任务API的调试全流程重点解决两个核心痛点如何正确构造包含taskDefinitionJsonObj等复杂参数的Postman请求以及如何从数据库准确获取必需的code参数包括工作流code、项目code等。无论您使用的是MySQL还是PostgreSQL数据库或是部署在K8s环境中都能在本指南中找到对应的解决方案。1. 环境准备与数据库连接1.1 确认数据库类型与连接信息在开始API调试前我们需要先获取DolphinScheduler的元数据信息。这些信息通常存储在后台数据库中因此第一步是确认您的部署环境使用的是哪种数据库# 查看K8s部署配置假设使用Helm部署 kubectl get configmap -n dolphinscheduler dolphinscheduler-config -o yaml | grep -i database对于K8s部署数据库配置通常在values.yaml文件中。关键配置项包括配置项示例值说明database.typepostgresql数据库类型database.hostpostgresql.dolphinscheduler.svc.cluster.local数据库主机地址database.port5432数据库端口database.usernameadmin数据库用户名database.passworddolphinscheduler123数据库密码database.databasedolphinscheduler数据库名称1.2 数据库连接与查询根据不同的数据库类型使用对应的客户端工具连接数据库MySQL连接示例mysql -h 数据库地址 -P 端口 -u 用户名 -p密码 数据库名PostgreSQL连接示例psql -h 数据库地址 -p 端口 -U 用户名 -d 数据库名连接成功后执行以下SQL查询获取必要的code信息-- 查询项目列表 SELECT id, name, code FROM t_ds_project; -- 查询工作流定义 SELECT id, name, code, project_code FROM t_ds_process_definition; -- 查询任务定义 SELECT id, name, code, process_definition_code FROM t_ds_task_definition;注意在实际操作中建议将这些查询结果保存到本地文本文件中后续API调用时会频繁用到这些code值。2. Postman请求配置详解2.1 创建新请求与认证配置打开Postman创建一个新的POST请求设置请求URL为http://DS服务地址:端口/dolphinscheduler/projects/project_code/task-definition/save-single在Headers中添加以下内容KeyValueContent-Typeapplication/jsontoken您的会话token获取token的方法通过UI登录后从浏览器Cookie中获取sessionId或者调用登录API获取curl -X POST http://DS服务地址:端口/dolphinscheduler/users/login \ -H Content-Type: application/json \ -d {userName:admin, userPassword:dolphinscheduler123}2.2 请求体构造创建任务API的核心在于正确构造taskDefinitionJsonObj参数。以下是一个完整的请求体示例{ processDefinitionCode: 1234567890123, upstreamCodes: 9876543210987, taskDefinitionJsonObj: { code: , delayTime: 0, description: , environmentCode: -1, failRetryInterval: 1, failRetryTimes: 0, flag: YES, name: 测试任务, taskParams: { rawScript: echo Hello DolphinScheduler, localParams: [], resourceList: [] }, taskPriority: MEDIUM, taskType: SHELL, timeout: 0, timeoutFlag: CLOSE, timeoutNotifyStrategy: null, workerGroup: default } }关键参数说明processDefinitionCode: 工作流定义code从数据库查询获得upstreamCodes: 上游节点code可选多个用逗号分隔taskDefinitionJsonObj中的核心字段name: 任务名称在UI中显示taskType: 任务类型如SHELL、SQL等taskParams.rawScript: 任务执行脚本内容3. 常见问题排查指南3.1 错误代码与解决方案错误码可能原因解决方案500数据库连接失败检查数据库服务是否正常网络是否通畅401未授权检查token是否有效是否已过期400参数错误检查所有code值是否正确特别是processDefinitionCode404资源不存在确认项目code和工作流code是否存在3.2 调试技巧日志查看当API调用失败时首先检查DolphinScheduler服务日志kubectl logs -n dolphinscheduler api-server-pod-name -fUI对比法在UI界面手动创建一个简单任务通过浏览器开发者工具查看实际发送的请求参数参数校验使用Postman的Pre-request Script功能对参数进行预校验// 示例检查必填参数是否存在 if (!pm.request.body.raw.includes(processDefinitionCode)) { throw new Error(缺少processDefinitionCode参数); }4. 完整工作流验证为了确保我们的API调用真正生效建议按照以下步骤进行端到端验证API调用在Postman中发送创建任务请求确保返回状态码为200数据库验证查询数据库确认任务已创建SELECT * FROM t_ds_task_definition WHERE name 测试任务;UI验证登录DolphinScheduler UI在对应项目中检查任务节点是否出现在工作流定义中任务参数是否正确显示执行测试手动触发工作流执行观察任务执行日志提示对于生产环境建议先在一个测试项目中完整走通整个流程再应用到正式环境。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2488392.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!