Egy Cloud Composer-feladatnál, amelynek egy kimenő HTTP-kérésre van szüksége proxyn keresztül, a HTTP-klienst a feladat callable-jén belül konfigurálja:

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

Ezt a callable-t a DAG meglévő feladat-elrendezésén keresztül használja. A proxynak elérhetőnek kell lennie a feladatot futtató worker felől. Az engedélyezett, proxyhitelesítés nélküli nyilvános API-hívásokhoz a HTTP-proxylista jelölteket kínál a munkamenet HTTP-proxy URL-jéhez. A hitelesített URL-t vagy más fiókkonfigurációt a telepítéshez szánt titkosforrásban tartsa.

A munkamenet és a válasz a függvény kilépésekor bezárul. A trust_env=False letiltja a Requests környezeti integrációját, így az örökölt proxybeállítások nem helyettesíthetik a kliens szánt viselkedését, és a Requests környezetalapú CA-csomagválasztását is kikapcsolja. Szükség esetén a szánt CA-csomagot a kliens verify beállításán keresztül adja át.

A felügyelt Airflow-környezethez beállított környezeti változók szélesebb hatókörrel és platform által meghatározott korlátozásokkal rendelkeznek. Az útvonal átadása ennek a munkamenetnek a döntést ehhez a feladat HTTP-műveletéhez köti anélkül, hogy módosítaná az os.environ-t a worker-folyamat más kódja számára.

Kapcsolódó cikkek