我想发送一个 HTTP 请求,其参数取决于依赖 Python 可调用的结果。我正在尝试为此目的使用 XComs。简化示例:
def get_index():
return 0
get_index = PythonOperator(
task_id='get_index',
python_callable=get_index,
dag=dag)
http_request = HttpSensor(
task_id='send_http_request',
http_conn_id=HTTP_HOST,
endpoint=ENDPOINT,
params={
"index": "{{ ti.xcom_pull('get_index') }}"
},
dag=dag)
get_index >> http_request
不幸的是,在检查了 HTTP 请求的选项后,我发现宏没有正确评估,而是发送了0
, {{ ti.xcom_pull('get_index') }}
。可能出了什么问题?我应该使用HttpOperator
代替HttpSensor
吗?