Jei Cloud Composer užduočiai reikia vienos išeinančios HTTP užklausos per proxy, sukonfigūruokite HTTP klientą užduoties callable viduje:

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

Naudokite šį callable per esamą DAG užduočių išdėstymą. Proxy turi būti pasiekiamas iš worker, kuris vykdo užduotį. Leidžiamiems viešųjų API kvietimams be proxy autentifikavimo HTTP proxy sąrašas pateikia kandidatus sesijos HTTP proxy URL. Autentifikuotą URL ar kitą paskyros konfigūraciją laikykite diegimo numatytoje slaptųjų duomenų saugykloje.

Sesija ir atsakymas uždaromi funkcijai pasibaigus. trust_env=False išjungia Requests integraciją su aplinka, todėl paveldėti proxy nustatymai negali pakeisti numatyto šio kliento elgesio, ir taip pat išjungia Requests CA paketo parinkimą pagal aplinką. Jei reikia, numatytą CA paketą pateikite per šio kliento parinktį verify.

Valdomos Airflow aplinkos aplinkos kintamieji turi platesnį taikymo sritį ir platformos apibrėžtus apribojimus. Perdavus maršrutą šiam Session, sprendimas lieka susietas su šios užduoties HTTP operacija ir nekeičia os.environ kitam worker proceso kodui.

Susiję straipsniai