Google Cloud Composer में टास्क-स्थानीय Requests प्रॉक्सी
साझा worker प्रक्रिया का प्रॉक्सी वातावरण बदलने के बजाय स्पष्ट रूट वाला टास्क-स्थानीय Requests Session बनाएँ।
ऐसे 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 या अन्य खाता कॉन्फ़िगरेशन डिप्लॉयमेंट के लिए इच्छित गुप्त स्रोत में रखें।
फ़ंक्शन के समाप्त होते ही Session और प्रतिक्रिया बंद हो जाते हैं। trust_env=False Requests के पर्यावरण एकीकरण को अक्षम करता है, जिससे विरासत में मिली प्रॉक्सी सेटिंग्स इस क्लाइंट के इच्छित व्यवहार को नहीं बदल सकतीं, और यह Requests के पर्यावरण-आधारित CA bundle चयन को भी बंद करता है। ज़रूरत हो तो इस क्लाइंट के verify विकल्प से इच्छित CA bundle दें।
प्रबंधित Airflow पर्यावरण के लिए कॉन्फ़िगर किए गए पर्यावरण चर का दायरा अधिक होता है और उन पर प्लेटफ़ॉर्म-निर्धारित प्रतिबंध होते हैं। रूट को इस Session को देने से निर्णय इस टास्क के HTTP संचालन से जुड़ा रहता है, worker प्रक्रिया के अन्य कोड के लिए os.environ बदले बिना।