Ak úloha Cloud Composer potrebuje jednu odchádzajúcu HTTP požiadavku cez proxy, nakonfigurujte HTTP klienta vnútri 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

Používajte tento callable cez existujúce usporiadanie úloh DAG. Proxy musí byť dostupné z worker, ktorý úlohu vykonáva. Pre povolené volania verejného API bez autentifikácie proxy zoznam proxy HTTP poskytuje kandidátov na URL proxy HTTP tejto relácie. Autentifikovanú URL alebo inú konfiguráciu účtu uchovávajte v zamýšľanom zdroji tajomstiev nasadenia.

Relácia a odpoveď sa zatvoria pri ukončení funkcie. trust_env=False vypína integráciu Requests s prostredím, čím bráni zdedeným nastaveniam proxy nahradiť zamýšľané správanie tohto klienta, a tiež vypína výber balíka CA v Requests na základe prostredia. Ak treba, zadajte zamýšľaný balík CA cez možnosť verify tohto klienta.

Premenné prostredia nakonfigurované pre spravované prostredie Airflow majú širší rozsah a obmedzenia definované platformou. Odovzdaním trasy tejto relácii zostáva rozhodnutie spojené s HTTP operáciou tejto úlohy bez zmeny os.environ pre iný kód v procese worker.

Súvisiace články