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.

Relaterede artikler