Oppgåvelokal Requests-proxy i Google Cloud Composer
Lag ein oppgåvelokal Requests Session med ein eksplisitt rute i staden for å endre proxy-miljøet til ein delt worker-prosess.
For ei Cloud Composer-oppgåve som treng éin utgåande HTTP-førespurnad gjennom ein proxy, konfigurer HTTP-klienten inne i callable-en til oppgåva:
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
Bruk denne callable-en gjennom det eksisterande oppgåveoppsettet i DAG-en. Proxyen må vere tilgjengeleg frå worker-en som køyrer oppgåva. For tillatne offentlege API-kall utan proxy-autentisering gjev HTTP-proxy-lista kandidatar til HTTP-proxy-URL-en til sesjonen. Oppbevar ein autentisert URL eller annan kontokonfigurasjon i den tiltenkte løyndekjelda til utrullinga.
Sesjonen og svaret blir lukka når funksjonen avsluttar. trust_env=False slår av miljøintegreringa til Requests, og hindrar arva proxy-innstillingar frå å erstatte den tiltenkte åtferda til denne klienten, og slår òg av det miljøbaserte valet av CA-bunt i Requests. Oppgje den tiltenkte CA-bunten gjennom verify-valet til denne klienten om det trengst.
Miljøvariablar som er konfigurerte for eit styrt Airflow-miljø, har vidare omfang og plattformdefinerte avgrensingar. Å sende ruta til denne sesjonen held avgjerda knytt til HTTP-operasjonen til denne oppgåva utan å endre os.environ for annan kode i worker-prosessen.