Google Cloud Composer ရှိ Task-Local Requests Proxy
မျှဝေထားသော worker လုပ်ငန်းစဉ်၏ proxy ပတ်ဝန်းကျင်ကို မပြောင်းဘဲ တိကျသော လမ်းကြောင်းပါ Task-Local Requests Session ကို ဖန်တီးပါ။
Cloud Composer task တစ်ခုအတွက် proxy မှတစ်ဆင့် အပြင်ထွက် HTTP တောင်းဆိုမှု တစ်ခု လိုအပ်ပါက HTTP client ကို task ၏ 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 ၏ လက်ရှိ task အစီအစဉ်မှတစ်ဆင့် အသုံးပြုပါ။ proxy သည် task ကို လုပ်ဆောင်နေသော worker မှ ရောက်ရှိနိုင်ရမည်။ proxy အထောက်အထားစစ်ဆေးမှု မလိုအပ်သော ခွင့်ပြုထားသည့် public API ခေါ်ဆိုမှုများအတွက် HTTP proxy စာရင်း သည် session ၏ HTTP proxy URL အတွက် ရွေးချယ်စရာများ ပေးသည်။ အထောက်အထားစစ်ဆေးထားသော URL သို့မဟုတ် အခြား အကောင့်ပြင်ဆင်မှုကို deployment ၏ ရည်ရွယ်ထားသော လျှို့ဝှက်ရင်းမြစ်တွင် ထားရှိပါ။
လုပ်ဆောင်ချက် ပြီးဆုံးသောအခါ Session နှင့် response သည် ပိတ်သွားသည်။ trust_env=False သည် Requests ၏ ပတ်ဝန်းကျင် ပေါင်းစပ်မှုကို ပိတ်ထားပြီး အမွေဆက်ခံထားသော proxy ဆက်တင်များက ဤ client ၏ ရည်ရွယ်ထားသော အပြုအမူကို အစားထိုးနိုင်ခြင်းမှ တားဆီးကာ Requests ၏ ပတ်ဝန်းကျင်အခြေခံ CA bundle ရွေးချယ်မှုကိုလည်း ပိတ်ထားသည်။ လိုအပ်ပါက ရည်ရွယ်ထားသော CA bundle ကို ဤ client ၏ verify ရွေးချယ်မှုမှတစ်ဆင့် ပေးပါ။
စီမံခန့်ခွဲထားသော Airflow ပတ်ဝန်းကျင်အတွက် ပြင်ဆင်ထားသော ပတ်ဝန်းကျင် variable များသည် ပိုကျယ်သော သက်ရောက်မှုရှိပြီး platform သတ်မှတ်ထားသော ကန့်သတ်ချက်များ ရှိသည်။ လမ်းကြောင်းကို ဤ Session သို့ ပေးပို့ခြင်းဖြင့် ဆုံးဖြတ်ချက်သည် ဤ task ၏ HTTP လုပ်ဆောင်မှုနှင့်သာ ချိတ်ဆက်နေပြီး worker လုပ်ငန်းစဉ်အတွင်းရှိ အခြား code အတွက် os.environ ကို မပြောင်းလဲပါ။