Проксі Requests на рівні завдання в Google Cloud Composer
Створіть сеанс Requests на рівні завдання з явним маршрутом замість зміни проксі-оточення спільного процесу worker.
Якщо завданню 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.