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 arbeidsprosessen som kjører oppgaven. For tillatte offentlige API-kall uten proxy-autentisering gir HTTP-proxy-listen kandidater til øktens HTTP-proxy-URL. Oppbevar en autentisert URL eller annen kontokonfigurasjon i distribusjonens tiltenkte hemmelighetskilde.

Økten 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 økten holder beslutningen knyttet til denne oppgavens HTTP-operasjon uten å endre os.environ for annen kode i arbeidsprosessen.

Relaterte artikler