Requests proxy ສະເພາະວຽກໃນ Google Cloud Composer
ສ້າງ Requests Session ສະເພາະວຽກທີ່ມີເສັ້ນທາງຊັດເຈນ ແທນການປ່ຽນສະພາບແວດລ້ອມ proxy ຂອງ worker ທີ່ໃຊ້ຮ່ວມກັນ.
ສຳລັບວຽກໃນ Cloud Composer ທີ່ຕ້ອງການສົ່ງຄຳຂໍ HTTP ອອກພາຍນອກໜຶ່ງຄັ້ງຜ່ານ proxy, ໃຫ້ຕັ້ງຄ່າ HTTP client ຢູ່ພາຍໃນ 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. proxy ຕ້ອງເຂົ້າເຖິງໄດ້ຈາກ worker ທີ່ປະຕິບັດວຽກນັ້ນ. ສຳລັບການເອີ້ນ public API ທີ່ອະນຸຍາດ ແລະ ບໍ່ຕ້ອງການການກວດສອບຕົວຕົນຂອງ proxy, ລາຍຊື່ HTTP proxy ສະໜອງຕົວເລືອກສຳລັບ HTTP proxy URL ຂອງ session. ໃຫ້ເກັບ URL ທີ່ມີການກວດສອບຕົວຕົນ ຫຼື ການຕັ້ງຄ່າບັນຊີອື່ນໄວ້ໃນແຫຼ່ງ secret ທີ່ deployment ກຳນົດໄວ້.
Session ແລະ response ຈະຖືກປິດເມື່ອຟັງຊັນສິ້ນສຸດ. trust_env=False ປິດການເຊື່ອມຕໍ່ກັບສະພາບແວດລ້ອມຂອງ Requests, ປ້ອງກັນບໍ່ໃຫ້ການຕັ້ງຄ່າ proxy ທີ່ຮັບມາແທນພຶດຕິກຳທີ່ຕັ້ງໃຈຂອງ client ນີ້, ແລະ ຍັງປິດການເລືອກ CA bundle ຕາມສະພາບແວດລ້ອມຂອງ Requests. ຖ້າຈຳເປັນ, ໃຫ້ສະໜອງ CA bundle ທີ່ຕັ້ງໃຈຜ່ານຕົວເລືອກ verify ຂອງ client ນີ້.
ຕົວແປສະພາບແວດລ້ອມທີ່ຕັ້ງຄ່າສຳລັບສະພາບແວດລ້ອມ Airflow ທີ່ຖືກຈັດການມີຂອບເຂດກວ້າງກວ່າ ແລະ ມີຂໍ້ຈຳກັດທີ່ platform ກຳນົດ. ການສົ່ງເສັ້ນທາງໃຫ້ Session ນີ້ເຮັດໃຫ້ການຕັດສິນໃຈຕິດຢູ່ກັບການດຳເນີນການ HTTP ຂອງວຽກນີ້ ໂດຍບໍ່ປ່ຽນ os.environ ສຳລັບໂຄດອື່ນໃນຂະບວນການ worker.