如何通过stepctx与执行ID调用RunDeck API获取父作业指定步骤详情?
获取RunDeck父作业子作业详情的API调用方案
一、正确的API选择与调用方式
你之前用的两个API是用来拉取步骤日志输出的,没法直接拿到子作业的名称、起止时间这类元数据。要获取子作业详情,得用下面的API:
- 批量获取父作业下所有子作业:
这个接口会返回父执行ID对应的所有子执行(子作业)列表,每个条目里包含子作业的ID、名称、开始时间、结束时间、状态等关键信息,刚好满足你存入SQL的需求。GET /api/38/executions?parentExecutionId={execId} - 通过stepctx关联子作业:
如果必须用stepctx来定位子作业,先调用步骤列表API拿到步骤关联的子执行ID:
每个步骤对象里,如果是触发子作业的步骤,会带一个GET /api/38/execution/{execId}/stepsexecutionId字段(就是子作业的执行ID)。拿到这个ID后,再调用单执行详情API获取完整时间信息:GET /api/38/execution/{childExecId}
二、解决现有API返回"entries": []的问题
你调用的步骤输出API返回空数组,大概率是这几个原因:
- 该步骤本身没有生成日志输出(比如只是触发子作业的跳转步骤,本身没执行内容)
stepctx参数值不对:stepctx格式一般是{stepId}:{nodeId}(节点步骤)或直接{stepId}(全局步骤),可以用上面的/execution/{execId}/steps接口确认正确的stepctx值- 第二个API路径写错了,正确路径开头要有
/,应该是GET /api/38/execution/{executionId}/step/{stepctx}
三、数据存入SQL的流程
- 调用
/api/38/executions?parentExecutionId={execId}拉取所有子作业数据 - 从返回的每个子作业对象里提取
name(子作业名)、startTime、endTime、status等字段 - 把这些字段对应到你的SQL表字段,执行插入或更新操作
内容的提问来源于stack exchange,提问作者Sakshi
相关产品推荐
相关产品推荐

