私はセラーリーエグゼキュータを使用しています。この設定はdockerfileです。Airflowでの展開の仕組みは?
ダグを/usr/local/airflow/dags
ディレクトリにスケジューラのコンテナに展開しています。
私はコマンドを使用して、私のDAGを実行することができるよ:
$ docker exec airflow_webserver_1 airflow backfill mydag -s 2016-01-01 -e 2016-02-01
私のDAGは、単純なbashの演算子が含まれています
BashOperator(command = "test.sh" ...)
オペレータはtest.sh
スクリプトを実行します。
test.sh
がcallme.sh
のような他のファイルを参照する場合、「ファイルを見つけることができません」というエラーが表示されます。 myworkflowを実行している場合
e.g
$ pwd
/usr/local/airflow/dags/myworkflow.py
$ ls
myworkflow.py
test.sh
callme.sh
$ cat test.sh
echo "test file"
./callme.sh
$ cat callme.sh
echo "got called"
、test.shを呼び出すためのタスクが呼び出されたが、callme.shが見つからないために失敗しています。
これはわかりにくいです。コードリソースファイルを作業者またはエアフローの責任者と共有することは私の責任ですか?それが私のものなら、そうするために推奨されるアプローチは何ですか?私はそれがすべてのコンテナにマウントされているEFSを使用して見ているが、それは私に非常に高価に見えます。