Za Cloud Composer zadatak kojem treba jedan odlazni HTTP zahtjev kroz proxy, konfigurirajte HTTP klijent unutar callable funkcije zadatka:

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

Koristite ovu callable funkciju kroz postojeći raspored zadataka u DAG-u. Proxy mora biti dostupan s workera koji ga izvršava. Za dopuštene pozive javnih API-ja bez proxy autentifikacije, popis HTTP proxyja nudi kandidate za HTTP proxy URL sesije. Autentificirani URL ili drugu konfiguraciju računa držite u izvoru tajni predviđenom za implementaciju.

Sesija i odgovor zatvaraju se kad funkcija završi. trust_env=False onemogućuje integraciju Requests s okruženjem, čime naslijeđene proxy postavke ne mogu zamijeniti namjeravano ponašanje ovog klijenta, a također isključuje odabir CA bundlea u Requests na temelju okruženja. Po potrebi dostavite namjeravani CA bundle kroz verify opciju ovog klijenta.

Varijable okruženja konfigurirane za upravljano Airflow okruženje imaju širi obuhvat i ograničenja definirana platformom. Prosljeđivanje rute ovoj sesiji drži odluku vezanu uz HTTP operaciju ovog zadatka bez mijenjanja os.environ za drugi kod u worker procesu.

Povezani članci