パラメータを渡す方法はありますか?
airflow trigger_dag dag_name {param}
?
ファイルのディレクトリを監視するスクリプトがあります-ファイルがターゲットディレクトリに移動すると、パラメータとしてファイルパスを渡すdagをトリガーします。
次のように渡すことができます:
airflow trigger_dag --conf {"file_variable": "/path/to/file"} dag_id
次に、DAGで、次のようにテンプレートを使用してこの変数にアクセスできます。
{{ dag_run.conf.file_variable }}
これが機能しない場合は、簡単なバージョンのDAGを共有すると、より良い回答が得られる場合があります。
はい、できます。 Dagには、次のようなDagとBaskタスクが必要です。
from airflow.operators.bash_operators import BashOperator
args = {'start_date':datetime.now(),
'owner':'airflow',}
dag = DAG(
dag_id='param_dag',
default_args=args,
schedule_interval=None)
bash_task=BashOperator(
task_id="bash_task"
bash_command= 'bash ~/path/bashscript.sh {{ dag_run.conf["parameter"] if dag_run else "" }} ',
//bashscript your script you want to run and the dag_run.conf will hold the parameter you want to pass
dag=dag)
コマンドラインで次のコマンドを入力してください:
airflow trigger_dag dag_id --conf '{"parameter":"~/path" }'