依存するPython呼び出し可能関数の結果に依存するパラメータを持つHTTPリクエストを送信します。私はこの目的のためにXComsを使用しようとしています。簡単な例:AirflowのXComs経由でPythonOperatorからHttpSensorにパラメータを渡すには?
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') }}
が送信された参照してください。何がうまくいかなかったのでしょうか? HttpSensor
の代わりにHttpOperator
を使用する必要がありますか?
これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-代わりに)。 - [レビューから](レビュー/低品質の投稿/ 17141050) –
@SirRufo実際には質問に答えています。記載されているセンサーでは、jinjaの式「{{ti.xcom_pull( 'get_index')}}」を使用します。これは、エアフローによってjinjaテンプレートとして読み取られることはなく、したがってxcomからの値で置き換えられません。しかし、paramsの名前がrequest_paramsに変更された場合、エアフローはそれを解釈し、 "{{ti.xcom_pull( 'get_index')}}"をXComの値で置き換えます。私のマシンでテストされています。 – faeder
*私は*と* try *と答えた方がコメントとしては完璧にフィットするが、修飾された答えではないという示唆です。 –