それ自体が他のマクロから計算される Airflow でユーザー定義マクロを作成する方法はありますか?
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
dag = DAG(
'simple',
schedule_interval='0 21 * * *',
user_defined_macros={
'next_execution_date': '{{ dag.following_schedule(execution_date) }}',
},
)
task = BashOperator(
task_id='bash_op',
bash_command='echo "{{ next_execution_date }}"',
dag=dag,
)
ここでの使用例は、新しい Airflow v1.8next_execution_date
マクロをバックポートして、Airflow v1.7 で動作するようにすることです。残念ながら、このテンプレートはマクロ展開なしでレンダリングされます。
$ airflow render simple bash_op 2017-08-09 21:00:00
# ----------------------------------------------------------
# property: bash_command
# ----------------------------------------------------------
echo "{{ dag.following_schedule(execution_date) }}"