För en Cloud Composer-uppgift som behöver en utgående HTTP-begäran via en proxy, konfigurera HTTP-klienten inuti uppgiftens 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

Använd denna callable via DAG:ens befintliga uppgiftsupplägg. Proxy:n måste vara nåbar från workern som kör uppgiften. För tillåtna offentliga API-anrop utan proxyautentisering ger HTTP-proxylistan kandidater till sessionens HTTP-proxy-URL. Förvara en autentiserad URL eller annan kontokonfiguration i utrullningens avsedda hemlighetskälla.

Sessionen och svaret stängs när funktionen avslutas. trust_env=False stänger av Requests miljöintegrering, vilket hindrar ärvda proxyinställningar från att ersätta denna klients avsedda beteende, och stänger också av Requests miljöbaserade val av CA-paket. Ange det avsedda CA-paketet via denna klients verify-alternativ om det behövs.

Miljövariabler som konfigurerats för en hanterad Airflow-miljö har bredare omfattning och plattformsdefinierade begränsningar. Att skicka rutten till denna session håller beslutet kopplat till denna uppgifts HTTP-operation utan att ändra os.environ för annan kod i worker-processen.

Relaterade artiklar