Oppgave-lokal Requests-proxy i Google Cloud Composer
Lag en oppgave-lokal Requests Session med en eksplisitt rute i stedet for å endre proxy-miljøet til en delt worker-prosess.
For en Cloud Composer-oppgave som trenger én utgående HTTP-forespørsel gjennom en proxy, konfigurer HTTP-klienten inne i oppgavens 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
Bruk denne callable gjennom DAG-ens eksisterende oppgaveoppsett. Proxyen må være tilgjengelig fra worker-en som kjører oppgaven. For tillatte offentlige API-kall uten proxy-autentisering gir HTTP-proxy-listen kandidater til sesjonens HTTP-proxy-URL. Oppbevar en autentisert URL eller annen kontokonfigurasjon i utrullingens tiltenkte hemmelighetskilde.
Sesjonen og svaret lukkes når funksjonen avsluttes. trust_env=False slår av Requests’ miljøintegrasjon, og hindrer at arvede proxy-innstillinger erstatter denne klientens tiltenkte oppførsel, og slår også av Requests’ miljøbaserte valg av CA-bunt. Oppgi den tiltenkte CA-bunten gjennom denne klientens verify-alternativ hvis det er nødvendig.
Miljøvariabler konfigurert for et administrert Airflow-miljø har bredere omfang og plattformdefinerte begrensninger. Å sende ruten til denne sesjonen holder beslutningen knyttet til denne oppgavens HTTP-operasjon uten å endre os.environ for annen kode i worker-prosessen.