コンテンツにスキップ

スクリプト開発 / コネクターオブジェクト DFF.CONN / DataFlux Func Sidecar

Sidecar コネクター操作オブジェクトを使用すると、ユーザーは Sidecar を呼び出して Shell コマンドを実行できます。

DFF.CONN(...) のパラメータは次のとおりです:

パラメータ 必須 / デフォルト値 説明
connector_id str 必須 コネクター ID
timeout int/float 10 この操作オブジェクトのデフォルトの HTTP リクエストタイムアウト時間(秒)

Sidecar ガイド

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 コールバック URL。コマンド実行後、stdoutstderr を POST 方式で指定された URL に送信します
通常は wait=False パラメータと組み合わせて使用し、非同期コールバックを実現します
timeout int/float None 今回のリクエストタイムアウト時間
注意:このパラメータは Shell コマンドのタイムアウト時間ではなく、Func が Sidecar にリクエストする際のタイムアウト時間です
省略時は操作オブジェクトのデフォルト値(10 秒)を使用します

このメソッドは (status_code, result) を返します:status_code は Sidecar の HTTP レスポンスステータスコード、result は解析後のレスポンス内容です。HTTP ステータスコードが 400 以上の場合、例外がスローされます。

.call(...)

Sidecar にコネクター署名付きの HTTP リクエストを送信する際のパラメータは次のとおりです:

パラメータ 必須 / デフォルト値 説明
method str 必須 HTTP リクエストメソッド;"GET /path" のようにも指定できます
path str None / で始まるリクエストパス;省略時は method から分解されます
query dict None URL クエリパラメータ
body - None リクエストボディ。文字列以外の値は事前に JSON にシリアライズされます
timeout int/float None 今回のリクエストタイムアウト時間。省略時は操作オブジェクトのデフォルト値を使用します

戻り値は .shell(...) と同じです。

実行後コールバック

SidecarHelper.shell(...) を呼び出して callback_url パラメータを指定すると、Sidecar は Shell コマンドの実行完了後に標準出力 stdout と標準エラー出力 stderr を POST 方式でこの URL に送信します。

具体的な構造は次のとおりです:

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」を直接使用して実行後のコールバックを受信できます