🤖

Airflow task instanceへのアクセス

2024/11/11に公開

Airflow で task_instance にアクセスしたいときが出てくる。例えば xcom push/pull したいときや、Airflow REST API でパラーメータが渡されたときなど。DAG や Task はコード中に明示的に記述するのでわかりやすいけれども、Task Instance は取り出し方がいまいちはっきりしない。Templatingでjinjaの中からアクセスできる。それ以外で必要な場合となると PythonOperator, @task あたりだろうか。

PythonOpetatorのソースコードによると、次の二通り。

  • **kwargs という形のキーワード引数でキャプチャする
  • ti という名前の引数を定義する

呼び出し側で inspect している。

Discussion