Proxy Requests local sarcinii în Google Cloud Composer
Creează o sesiune Requests locală sarcinii cu o rută explicită, în loc să modifici mediul de proxy al unui proces worker partajat.
Pentru o sarcină Cloud Composer care are nevoie de o singură cerere HTTP de ieșire printr-un proxy, configurează clientul HTTP în interiorul callable-ului sarcinii:
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
Folosește acest callable prin aranjamentul de sarcini existent al DAG-ului. Proxy-ul trebuie să fie accesibil din worker-ul care execută sarcina. Pentru apeluri API publice permise fără autentificare la proxy, lista de proxy-uri HTTP oferă candidați pentru URL-ul de proxy HTTP al sesiunii. Păstrează un URL autentificat sau altă configurație de cont în sursa de secrete destinată implementării.
Sesiunea și răspunsul se închid la ieșirea din funcție. trust_env=False dezactivează integrarea Requests cu mediul, împiedicând setările de proxy moștenite să înlocuiască comportamentul dorit al acestui client, și dezactivează și selecția pachetului CA pe bază de mediu din Requests. Dacă este nevoie, furnizează pachetul CA dorit prin opțiunea verify a acestui client.
Variabilele de mediu configurate pentru un mediu Airflow administrat au o sferă mai largă și restricții definite de platformă. Trimiterea rutei către această sesiune menține decizia legată de operația HTTP a acestei sarcini fără a modifica os.environ pentru alt cod din procesul worker.