En opgavelokal Requests-proxy i Google Cloud Composer
Opret en opgavelokal Requests-session med en eksplicit rute i stedet for at ændre proxy-miljøet for en delt worker-proces.
For en Cloud Composer-opgave, der har brug for én udgående HTTP-anmodning gennem en proxy, skal du konfigurere HTTP-klienten inde i opgavens 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
Brug denne callable via DAG'ens eksisterende opgaveopsætning. Proxyen skal være nåbar fra den worker, der udfører den. Til tilladte offentlige API-kald uden proxy-godkendelse leverer HTTP-proxy-listen kandidater til sessionens HTTP-proxy-URL. Opbevar en godkendt URL eller anden kontokonfiguration i den hemmelighedskilde, der er tiltænkt deploymentet.
Sessionen og svaret lukkes, når funktionen afsluttes. trust_env=False deaktiverer Requests' miljøintegration, så nedarvede proxyindstillinger ikke erstatter denne klients tilsigtede adfærd, og slår også Requests' miljøbaserede valg af CA-bundle fra. Angiv den tilsigtede CA-bundle via denne klients verify-indstilling, hvis det er nødvendigt.
Miljøvariabler, der er konfigureret til et administreret Airflow-miljø, har bredere omfang og platformsdefinerede begrænsninger. Når ruten sendes til denne session, forbliver beslutningen knyttet til denne opgaves HTTP-handling uden at ændre os.environ for anden kode i worker-processen.