Google Cloud Composer-এ টাস্ক-স্থানীয় Requests প্রক্সি
শেয়ার করা worker প্রসেসের প্রক্সি পরিবেশ বদলানোর বদলে স্পষ্ট রুট সহ টাস্ক-স্থানীয় Requests Session তৈরি করুন।
Cloud Composer টাস্কের যদি প্রক্সির মাধ্যমে একটি আউটবাউন্ড HTTP অনুরোধ প্রয়োজন হয়, তাহলে টাস্কের callable-এর ভিতরে HTTP ক্লায়েন্ট কনফিগার করুন:
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
DAG-এর বিদ্যমান টাস্ক বিন্যাসের মাধ্যমে এই callable ব্যবহার করুন। প্রক্সিটি যে worker এটি চালায় সেখান থেকে পৌঁছানোযোগ্য হতে হবে। প্রক্সি প্রমাণীকরণ ছাড়া অনুমোদিত পাবলিক API কলের জন্য HTTP প্রক্সি তালিকা সেশনটির HTTP প্রক্সি URL-এর জন্য প্রার্থী দেয়। প্রমাণিত URL বা অন্য অ্যাকাউন্ট কনফিগারেশন ডিপ্লয়মেন্টের জন্য নির্ধারিত গোপন উৎসে রাখুন।
ফাংশন শেষ হলে Session ও response বন্ধ হয়। trust_env=False Requests-এর পরিবেশ সমন্বয় নিষ্ক্রিয় করে, ফলে উত্তরাধিকারসূত্রে পাওয়া প্রক্সি সেটিং এই ক্লায়েন্টের অভীষ্ট আচরণ প্রতিস্থাপন করতে পারে না, এবং Requests-এর পরিবেশভিত্তিক CA bundle নির্বাচনও বন্ধ করে। প্রয়োজন হলে এই ক্লায়েন্টের verify অপশনের মাধ্যমে অভীষ্ট CA bundle দিন।
পরিচালিত Airflow পরিবেশের জন্য কনফিগার করা পরিবেশ চলকের পরিধি বেশি এবং প্ল্যাটফর্ম-নির্ধারিত সীমাবদ্ধতা থাকে। রুটটি এই Session-এ দেওয়া হলে সিদ্ধান্তটি এই টাস্কের HTTP ক্রিয়ার সঙ্গে যুক্ত থাকে, worker প্রসেসের অন্য কোডের জন্য os.environ না বদলিয়ে।