命令
exec
组件:执行本地命令组件。用于执行系统命令和脚本,适用于自动化运维、数据处理、CI/CD流水线等场景。
# 配置
字段 | 类型 | 说明 | 默认值 |
---|---|---|---|
cmd | string | 要执行的命令,支持组件配置变量动态设置 | 无 |
args | []string | 命令的参数列表 | 无 |
log | bool | 是否记录命令的标准输出。true时会触发OnDebug回调 | false |
replaceData | bool | 是否用命令的标准输出替换消息内容传递给下一个节点 | false |
timeout | int | 命令执行超时时间(秒),0表示不设置超时 | 0 |
提示
安全提示:
- 默认情况下组件不允许执行任何命令,需要先配置允许执行的命令白名单
- 通过
config.Properties.PutValue(KeyExecNodeWhitelist,"cmd1,cmd2")
设置白名单,多个命令用逗号分隔 - 只有在白名单中的命令才允许执行,其他命令会被拒绝
- 可以通过metadata的
workDir
字段指定命令的工作目录,如:Metadata.PutValue("workDir","./data")
# Relation Type
- Success: 命令执行成功,消息将通过
Success
链路由 - Failure: 以下情况消息将通过
Failure
链路由:- 命令不在白名单中
- 命令执行失败或返回非零状态码
- 执行超时
- 工作目录不存在
# 执行结果
- 当replaceData=true时:
- 命令的标准输出内容会替换msg.Data
- 标准错误输出会记录到metadata中
- 当replaceData=false时:
- msg.Data保持不变
- 命令输出可通过metadata访问
# 配置示例
{
"id": "s1",
"type": "exec",
"name": "执行本地命令",
"configuration": {
"cmd": "ls",
"args": ["."]
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
在 GitHub 上编辑此页 (opens new window)
上次更新: 2024/12/22, 03:38:12