跳轉至

腳本開發 / DataFlux Func Sidecar

使用 Sidecar 連接器操作對象允許用户調用 Sidecar 執行 Shell 命令。

DFF.CONN(...) 參數如下:

參數 類型 必須 / 默認值 説明
connector_id str 必須 連接器 ID

有關 Sidecar 的完整使用文檔,請參考「Sidecar 手冊」

.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 的「函數 API」 標準 POST 方式 匹配,可直接使用「函數 API」接收執行後的回調