3

毎日実行するようにスケジュールされている 3 つの bash タスクを持つ DAG があります。

すべての bash スクリプトで、dag インスタンスの一意の ID (PID の可能性があります) にアクセスしたいと考えています。

これを行う方法はありますか?

ワークフロー xml または Java コードで WORKFLOW_ID にアクセスできる Oozie と同様の機能を探しています。

「AirFlow DAGでビルド内およびカスタム変数を使用する方法」に関するAirFlowのドキュメントを誰かに教えてもらえますか

どうもありがとうパリ

4

2 に答える 2

0

python オブジェクトdagが現在の DAG の名前を出力するという事実を利用しました。だから私は名前を変更するためにjinja2を使うだけdagです:

{{ dag | replace( '<DAG: ', '' ) | replace( '>', '' ) }}

ちょっとしたハックですが、うまくいきます。

したがって、

clear_upstream = BashOperator( task_id='clear_upstream',
    trigger_rule='all_failed',
    bash_command="""
      echo airflow clear -t upstream_task -c -d -s {{ ts }} -e {{ ts }} {{ dag | replace( '<DAG: ', '' ) | replace( '>', '' ) }}
    """
)
于 2017-12-18T08:23:59.413 に答える