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.

Relaterte artiklar