Za Cloud Composer zadatak kojem treba jedan odlazni HTTP zahtev kroz proxy, konfiguriši HTTP klijent unutar callable-a 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

Koristi ovaj callable kroz postojeći raspored zadataka DAG-a. Proxy mora biti dostupan sa worker-a koji izvršava zadatak. Za dozvoljene pozive javnog API-ja bez proxy autentifikacije, lista HTTP proxy-ja daje kandidate za HTTP proxy URL sesije. Autentifikovani URL ili drugu konfiguraciju naloga čuvaj u predviđenom izvoru tajni za deploy.

Sesija i odgovor se zatvaraju kada funkcija završi. trust_env=False isključuje Requests integraciju sa okruženjem, sprečavajući da nasleđena proxy podešavanja zamene predviđeno ponašanje ovog klijenta, i takođe isključuje izbor CA paketa u Requests-u zasnovan na okruženju. Ako je potrebno, obezbedi predviđeni CA paket kroz verify opciju ovog klijenta.

Promenljive okruženja konfigurisane za upravljano Airflow okruženje imaju širi obim i ograničenja definisana platformom. Prosleđivanje rute ovoj sesiji zadržava odluku vezanu za HTTP operaciju ovog zadatka bez menjanja os.environ za drugi kod u worker procesu.

Povezani članci