Vir 'n Cloud Composer-taak wat een uitgaande HTTP-versoek deur 'n proxy benodig, stel die HTTP-kliënt binne die taak se callable op:

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

Gebruik hierdie callable deur die DAG se bestaande taakreëling. Die proxy moet bereikbaar wees vanaf die werker wat dit uitvoer. Vir toegelate publieke API-oproepe sonder proxy-verifikasie verskaf die HTTP-proxylys kandidate vir die sessie se HTTP-proxy-URL. Hou 'n geauthentiseerde URL of ander rekeningkonfigurasie in die ontplooiing se beoogde geheimbron.

Die sessie en die respons sluit wanneer die funksie eindig. trust_env=False skakel Requests se omgewingsintegrasie uit, wat verhoed dat geërfde proxy-instellings hierdie kliënt se beoogde gedrag vervang, en skakel ook Requests se omgewingsgebaseerde keuse van die CA-bundel uit. Verskaf die beoogde CA-bundel deur hierdie kliënt se verify-opsie indien nodig.

Omgewingsveranderlikes wat vir 'n bestuurde Airflow-omgewing opgestel is, het 'n wyer omvang en platformgedefinieerde beperkings. Deur die roete aan hierdie sessie te gee, bly die besluit aan hierdie taak se HTTP-bewerking gekoppel sonder om os.environ vir ander kode in die werkerproses te verander.

Verwante artikels