背景
Airflow2.0で、PythonOperatorやXComの受け渡しをシンプルに書ける TaskflowAPI が登場しました。TaskflowAPIでAirflowのMacroを使う方法なかなか見つからなかったのでメモしておきます。
実装
タスク内で from airflow.operators.python import get_current_context
の get_current_context()
を呼び出すとマクロが取得できます。
sample.py
from airflow.decorators import dag, task
from airflow.utils.dates import days_ago
from airflow.operators.python import get_current_context
@dag(default_args={'owner': 'airflow'}, schedule_interval=None, start_date=days_ago(2))
def fetch_pd_log_entries():
@task
def execute_task():
print(get_current_context()['execution_date']) # pendulumオブジェクトが取得できる
execute_task()
hoge_dag = fetch_pd_log_entries()
参考
Passing arguements using Taskflow API in Airflow 2.0