ダグラムを実行するとき、気流UIで、「グラフビュー」で各ジョブの実行の詳細を取得します。エアフローダグのJobIDを取得するにはどうすればよいですか?
ジョブIDは、「scheduled__2017-04-11T10:47:00」のようなものです。
追跡/ログ作成にこのJobIDが必要です。このタスクIDは、各タスク/ dagrunにかかる時間を維持します。
私の質問はです。実行中の同じダッグ内でどのようにJobIDを取得できますか?
おかげで、チェタン
ダグラムを実行するとき、気流UIで、「グラフビュー」で各ジョブの実行の詳細を取得します。エアフローダグのJobIDを取得するにはどうすればよいですか?
ジョブIDは、「scheduled__2017-04-11T10:47:00」のようなものです。
追跡/ログ作成にこのJobIDが必要です。このタスクIDは、各タスク/ dagrunにかかる時間を維持します。
私の質問はです。実行中の同じダッグ内でどのようにJobIDを取得できますか?
おかげで、チェタン
この値は、実際にrun_id
と呼ばれ、文脈やマクロを介してアクセスすることができます。
これはコンテキストを介してアクセスされ、bash演算子ではbash_command
フィールドのjinjaテンプレートを介してアクセスされます。マクロで利用できるものに
さらに詳しい情報:神社の
https://airflow.incubator.apache.org/code.html#macros
さらに詳しい情報:
https://airflow.incubator.apache.org/concepts.html#jinja-templating
from airflow.models import DAG
from datetime import datetime
from airflow.operators.bash_operator import BashOperator
from airflow.operators.python_operator import PythonOperator
dag = DAG(
dag_id='run_id',
schedule_interval=None,
start_date=datetime(2017, 2, 26)
)
def my_func(**kwargs):
context = kwargs
print(context['dag_run'].run_id)
t1 = PythonOperator(
task_id='python_run_id',
python_callable=my_func,
provide_context=True,
dag=dag
)
t2 = BashOperator(
task_id='bash_run_id',
bash_command='echo {{run_id}}',
dag=dag)
t1.set_downstream(t2)
例として、このDAGを使用して、ためにログをチェックします各オペレータには、run_id
がログに出力されます。