Pro úlohu Cloud Composer, která potřebuje jeden odchozí požadavek HTTP přes proxy, nakonfigurujte klienta HTTP uvnitř callable úlohy:

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

Tento callable použijte prostřednictvím stávajícího uspořádání úloh v DAG. Proxy musí být dostupná z pracovního procesu, který úlohu vykonává. Pro povolená volání veřejných API bez autentizace proxy nabízí seznam proxy HTTP kandidáty pro URL proxy HTTP této relace. Autentizovanou URL nebo jinou konfiguraci účtu uchovávejte ve zdroji tajemství určeném pro nasazení.

Relace i odpověď se zavřou při ukončení funkce. trust_env=False vypíná integraci Requests s prostředím, takže zděděná nastavení proxy nenahradí zamýšlené chování tohoto klienta, a zároveň vypíná výběr CA bundle v Requests podle prostředí. Zamýšlený CA bundle v případě potřeby předejte přes volbu verify tohoto klienta.

Proměnné prostředí nakonfigurované pro spravované prostředí Airflow mají širší rozsah a omezení daná platformou. Předání trasy této relaci udržuje rozhodnutí navázané na operaci HTTP této úlohy, aniž by měnilo os.environ pro jiný kód v pracovním procesu.

Související články