Google Cloud Composer’da vazifaga xos Requests proksisi
Umumiy worker jarayonining proksi muhitini o’zgartirmasdan, aniq marshrutli vazifaga xos Requests Session yarating.
Proksi orqali bitta chiquvchi HTTP so’rov talab qiladigan Cloud Composer vazifasi uchun HTTP mijozi vazifaning callable ichida sozlanadi:
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
Bu callable DAG’ning mavjud vazifalar tartibi orqali ishlatiladi. Proksi vazifani bajarayotgan worker’dan yetib borish imkoniga ega bo’lishi kerak. Proksi autentifikatsiyasisiz ruxsat etilgan ommaviy API chaqiruvlari uchun HTTP proksi ro’yxati sessiyaning HTTP proksi URL’si uchun nomzodlar beradi. Autentifikatsiyalangan URL yoki boshqa hisob sozlamalarini joylashtirishning belgilangan maxfiy manbasida saqlang.
Funksiya tugagach Session va javob yopiladi. trust_env=False Requests’ning muhit bilan integratsiyasini o’chiradi, shu bilan meros qolgan proksi sozlamalari bu mijozning mo’ljallangan xatti-harakatini almashtira olmaydi, hamda Requests’ning muhitga asoslangan CA to’plamini tanlashini ham o’chiradi. Zarur bo’lsa, mo’ljallangan CA to’plamini bu mijozning verify parametri orqali bering.
Boshqariladigan Airflow muhiti uchun sozlangan muhit o’zgaruvchilari kengroq qamrovga va platforma belgilagan cheklovlarga ega. Marshrutni bu Session’ga berish qaror vazifaning HTTP amali bilan bog’liq qoladi va worker jarayonidagi boshqa kod uchun os.environ o’zgarmaydi.