Apache Airflow(2.0.0b1)-动态创建任务并在函数中访问kwargs
我使用的是ApacheAirflow 2.0.0.0b1。我有一个EmailOperator,我想动态更改它的一些参数。具体来说,我希望访问Apache Airflow(2.0.0b1)-动态创建任务并在函数中访问kwargs,airflow,Airflow,我使用的是ApacheAirflow 2.0.0.0b1。我有一个EmailOperator,我想动态更改它的一些参数。具体来说,我希望访问kwargs['ti'] 下面是我的代码 ... # [START get_email_operator] def get_email_operator(**kwargs): export_file_path = kwargs['ti'].xcom_pull(key='LUMA_TERMED_DRIVERS_OUTPUT_CSV') emai
kwargs['ti']
下面是我的代码
...
# [START get_email_operator]
def get_email_operator(**kwargs):
export_file_path = kwargs['ti'].xcom_pull(key='LUMA_TERMED_DRIVERS_OUTPUT_CSV')
email_subject = 'Termed Drivers - ' + date_string
return EmailOperator(
task_id="get_email_operator",
to=['somone@somwhere.net'],
subject=email_subject,
files=[export_file_path,],
html_content='<br>',
dag=dag)
...
print_date_op >> ... >> get_email_operator()
如何在不是任务但将返回任务的函数中引用kwargs
非常感谢您的帮助。这是一个python问题,而不是问题。函数调用不会立即失败,因为
None
是有效的字典。不过,您需要将调用更改为passti=
,作为参数设置为get\u email\u operator
,如下所示:
print_date_op >> ... >> get_email_operator(ti="something")
但是如果要这样做,函数的内容会更清楚地显示为:
def get_email_operator(ti):
export_file_path = ti.xcom_pull(key='LUMA_TERMED_DRIVERS_OUTPUT_CSV')
这是一个python问题,而不是一个气流问题。函数调用不会立即失败,因为
None
是有效的字典。不过,您需要将调用更改为passti=
,作为参数设置为get\u email\u operator
,如下所示:
print_date_op >> ... >> get_email_operator(ti="something")
但是如果要这样做,函数的内容会更清楚地显示为:
def get_email_operator(ti):
export_file_path = ti.xcom_pull(key='LUMA_TERMED_DRIVERS_OUTPUT_CSV')