跳转至

脚本开发 / DataFlux Func Sidecar

使用 Sidecar 连接器操作对象允许用户调用 Sidecar 执行 Shell 命令。

DFF.CONN(...)参数如下:

参数 类型 必须/默认值 说明
connector_id str 必须 连接器 ID

有关 Sidecar 的完整使用文档,请参考「Sidecar 手册」

.shell(...)

shell(...)方法用于执行调用 Sidecar 执行 Shell 命令,参数如下:

参数 类型 必须/默认值 说明
cmd str 必须 需要执行的 Shell 命令
如:"ls -l"
wait bool True 是否等待执行完成
设置为False时,本函数会立刻返回,并且不会返回终端输出
workdir str None Shell 命令执行的工作目录
如:"/home/dev"
envs dict None 环境变量,键和值都为字符串
如:{"MY_NAME": "Tom"}
callback_url str None 回调地址,命令执行后,将stdoutstderr使用 POST 方式发送至指定 URL
一般和wait=False参数一起使用,实现异步回调
timeout int 3 请求超时时间
注意:本参数并不是 Shell 命令的超时时间,而是 Func 请求 Sidecar 的超时时间
即 Func 请求 Sidecar 可能会超时,但所执行的 Shell 命令并不会因此停止

执行后回调

调用SidecarHelper.shell(...)并指定callback_url参数后,Sidecar 会在执行完 Shell 命令后将标准输出stdout和标准错误stderr以 POST 方式发送至此地址。

具体结构如下:

Text Only
1
2
3
4
5
6
7
8
9
POST {callback_url}
Content-Type: application/json

{
    "kwargs": {
        "stdout": "<标准输出文本>",
        "stderr": "<标准错误文本>"
    }
}

此结构与 DataFlux Func 的「授权链接标准 POST 方式」匹配,可直接使用「授权链接」接收执行后的回调