Если задаче 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.

Похожие статьи