لمهمة في Cloud Composer تحتاج إلى طلب HTTP صادر واحد عبر وكيل، اضبط عميل 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. يجب أن يكون الوكيل قابلًا للوصول من العامل الذي ينفذها. لاستدعاءات واجهات API العامة المسموح بها دون مصادقة وكيل، توفر قائمة وكلاء HTTP مرشحين لعنوان URL الخاص بوكيل HTTP للجلسة. احتفظ بعنوان URL موثق أو أي إعداد حساب آخر في مصدر الأسرار المقصود في عملية النشر.

تُغلق الجلسة والاستجابة عند انتهاء الدالة. يعطّل trust_env=False تكامل Requests مع البيئة، ما يمنع إعدادات الوكيل الموروثة من استبدال السلوك المقصود لهذا العميل، ويعطّل أيضًا اختيار Requests لحزمة CA بناءً على البيئة. مرّر حزمة CA المقصودة عبر خيار verify لهذا العميل عند الحاجة.

متغيرات البيئة المهيأة لبيئة Airflow مُدارة لها نطاق أوسع وقيود يحددها النظام الأساسي. إمرار المسار إلى هذه الجلسة يبقي القرار مرتبطًا بعملية HTTP لهذه المهمة دون تغيير os.environ لأكواد أخرى في عملية العامل.

مقالات ذات صلة