За задача в 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 bundle от Requests въз основа на средата. Ако е нужно, подайте желания CA bundle чрез опцията verify на този клиент.

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

Подобни статии