如何配置Rundeck Webhook以接收外部应用传递的文件
Rundeck Webhook 文件接收能力与配置指南
核心结论:Rundeck 原生支持通过Webhook接收上传文件,无法正常收文件本质是默认的Raw JSON配置不匹配multipart格式的文件上传请求,按步骤调整即可正常运行。
具体配置流程
- 切换Webhook的Payload处理模式:进入目标作业对应的Webhook配置页,将默认的「Raw JSON」处理模式改为「Form Data」模式,开启Rundeck对multipart/form-data格式请求的解析能力
- 提前准备作业侧的对应选项:在目标作业定义中,新增一个类型为「文件」的作业选项,用于承接Webhook上传的文件;只有文件类型的选项,才能让Rundeck把上传的文件流落盘到作业运行的临时执行目录,供后续脚本/流程调用
- 完成参数映射:在Webhook的参数映射配置页,将外部请求里携带文件的表单字段,绑定到刚才创建的「文件」类型作业选项上,确保上传文件能正确传递到作业上下文
- 按需调整上传大小限制:默认Webhook的单请求上传大小上限为10MB,若要接收更大的文件,可在Rundeck核心配置文件中调整参数
rundeck.webhook.maxUploadSize=目标大小,比如要支持最大100MB的文件就配置为rundeck.webhook.maxUploadSize=100M
常见配置误区
- 不要在Raw JSON模式下尝试传文件:Raw JSON解析器只会处理纯文本结构化内容,无法识别multipart格式的二进制文件流,哪怕把文件转base64编码塞进JSON字段,也容易因为请求体大小超限、格式解析报错失败
- 匹配正确的请求头:外部应用触发Webhook时,需将请求Content-Type设置为multipart/form-data格式,不能手动指定为application/json,否则Rundeck会走JSON解析分支,直接丢弃上传的文件内容
- 校验Webhook调用账号权限:触发Webhook使用的账号,需要对绑定的文件类作业选项有写入权限,否则上传的文件会在鉴权环节被拦截,无法正常传入作业上下文
作业执行阶段,可直接通过
${option.文件选项名称}的路径,获取上传文件在执行节点的本地临时路径,无需额外编写文件存储逻辑。
内容的提问来源于stack exchange,提问作者roboragi
相关产品推荐
相关产品推荐

