สำหรับงานใน 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 มีตัวเลือกสำหรับ URL พร็อกซี HTTP ของเซสชัน เก็บ URL ที่ผ่านการพิสูจน์ตัวตนหรือการกำหนดค่าบัญชีอื่นไว้ในแหล่งข้อมูลลับที่การติดตั้งกำหนดไว้

Session และการตอบกลับจะปิดเมื่อฟังก์ชันสิ้นสุด trust_env=False ปิด การเชื่อมต่อกับสภาพแวดล้อมของ Requests ทำให้การตั้งค่าพร็อกซีที่สืบทอดมาไม่สามารถแทนที่พฤติกรรมที่ตั้งใจของไคลเอนต์นี้ และยังปิดการเลือก CA bundle ตามสภาพแวดล้อมของ Requests ด้วย หากจำเป็น ให้ระบุ CA bundle ที่ต้องการผ่านตัวเลือก verify ของไคลเอนต์นี้

ตัวแปรสภาพแวดล้อมที่กำหนดค่าสำหรับสภาพแวดล้อม Airflow ที่มีการจัดการมีขอบเขตกว้างกว่าและมีข้อจำกัดที่แพลตฟอร์มกำหนด การส่งเส้นทางให้ Session นี้ทำให้การตัดสินใจผูกอยู่กับการทำงาน HTTP ของงานนี้ โดยไม่เปลี่ยน os.environ สำหรับโค้ดอื่นในโปรเซส worker

บทความที่เกี่ยวข้อง