传递给 Shell 脚本的气流参数
Airflow parameter passing to Shell script
我正在尝试在我的气流 DAG 中调用 shell 脚本并传递一些如下所述的参数,
def load_data_parameters():
today_date = '{{ ds }}'
environment = config.get('common', 'env')
return today_date,environment
today_date,environment = load_data_parameters()
EdgeToRaw_Command ="./scripts/test.sh"
Test = BashOperator(
task_id= 'Test-Task',
bash_command=EdgeToRaw_Command,
params = {'env': environment},
dag=dag)
在 shell 脚本中,
envi=
echo $envi
有人可以帮助解决这个问题,或者告诉我如何将参数传递给调用脚本以执行某些任务的 BashOperator。
在您的 shell 脚本中,您需要具有以下内容
envi={{params.env}}
echo $envi
基本上,无论您传递给 BashOperator
中的 params
参数,都需要由 {{params.PARAMETER_NAME}}
调用
编辑:
注意:您的 "scripts" 文件夹应该与您的 Dag 文件位于同一文件夹中。因此,如果您的 dag 在“/usr/local/airflow/dags”下,您的 "scripts" 文件夹应该在 dame 文件夹中。并且您需要在 bash_command
中传递相对路径,即 "scripts/test.sh"
我正在尝试在我的气流 DAG 中调用 shell 脚本并传递一些如下所述的参数,
def load_data_parameters():
today_date = '{{ ds }}'
environment = config.get('common', 'env')
return today_date,environment
today_date,environment = load_data_parameters()
EdgeToRaw_Command ="./scripts/test.sh"
Test = BashOperator(
task_id= 'Test-Task',
bash_command=EdgeToRaw_Command,
params = {'env': environment},
dag=dag)
在 shell 脚本中,
envi=
echo $envi
有人可以帮助解决这个问题,或者告诉我如何将参数传递给调用脚本以执行某些任务的 BashOperator。
在您的 shell 脚本中,您需要具有以下内容
envi={{params.env}}
echo $envi
基本上,无论您传递给 BashOperator
中的 params
参数,都需要由 {{params.PARAMETER_NAME}}
编辑:
注意:您的 "scripts" 文件夹应该与您的 Dag 文件位于同一文件夹中。因此,如果您的 dag 在“/usr/local/airflow/dags”下,您的 "scripts" 文件夹应该在 dame 文件夹中。并且您需要在 bash_command
中传递相对路径,即 "scripts/test.sh"