Проксі Requests, лакальны для задачы, у Google Cloud Composer
Стварыце лакальны для задачы Requests Session з яўным маршрутам, замест таго каб змяняць праксі-асяроддзе агульнага працэсу worker.
Для задачы Cloud Composer, якой патрэбны адзін зыходны HTTP-запыт праз проксі, наладзьце HTTP-кліент унутры callable задачы:
def fetch_status():
import requests
with requests.Session() as session:
session.trust_env = False
with session.get(
'https://api.example/health',
proxies={'https': 'http://proxy.example:8080'},
timeout=(5, 30),
) as response:
response.raise_for_status()
return response.status_code
Выклікайце гэты callable праз існуючае размяшчэнне задач у DAG. Проксі павінен быць даступны з worker, які выконвае задачу. Для дазволеных выклікаў публічных API без аўтэнтыфікацыі праз проксі спіс HTTP-проксі дае кандыдатаў для HTTP-проксі URL сеанса. Аўтэнтыфікаваны URL або іншую канфігурацыю ўліковага запісу трымайце ў прызначанай для разгортвання крыніцы сакрэтаў.
Session і адказ закрываюцца пасля завяршэння функцыі. trust_env=False адключае інтэграцыю Requests з асяроддзем, што не дазваляе ўспадкаваным наладам проксі замяніць жаданыя паводзіны гэтага кліента, а таксама адключае выбар CA bundle у Requests на аснове асяроддзя. Пры неабходнасці перадайце патрэбны CA bundle праз опцыю verify гэтага кліента.
Пераменныя асяроддзя, наладжаныя для кіраванага асяроддзя Airflow, маюць шырэйшы абсяг і абмежаванні, вызначаныя платформай. Калі перадаць маршрут гэтаму Session, рашэнне застаецца прывязаным да HTTP-аперацыі гэтай задачы, не змяняючы os.environ для іншага кода ў працэсе worker.