За задача во Cloud Composer на која ѝ треба едно појдовно HTTP барање преку прокси, конфигурирајте го HTTP клиентот внатре во callable-от на задачата:

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

Користете го овој callable преку постоечкиот распоред на задачи во DAG-от. Проксито мора да биде достапно од worker-от што ја извршува задачата. За дозволени повикувања на јавни API без автентикација на прокси, списокот на HTTP прокси обезбедува кандидати за HTTP прокси URL на сесијата. Автентицираниот URL или друга конфигурација на сметка чувајте ја во предвидениот извор на тајни на распоредувањето.

Сесијата и одговорот се затвораат кога функцијата ќе излезе. trust_env=False ја исклучува интеграцијата на Requests со околината, спречувајќи наследените прокси поставки да го заменат предвиденото однесување на овој клиент, а исто така го исклучува изборот на CA пакет на Requests врз основа на околината. Ако е потребно, обезбедете го предвидениот CA пакет преку опцијата verify на овој клиент.

Променливите на околината конфигурирани за управувана Airflow околина имаат поширок опсег и ограничувања дефинирани од платформата. Пренесувањето на рутата до оваа сесија ја задржува одлуката врзана за HTTP операцијата на оваа задача без менување на os.environ за другиот код во worker процесот.

Поврзани статии