Proxy üzerinden tek bir giden HTTP isteğine ihtiyaç duyan bir Cloud Composer görevi için HTTP istemcisini görevin callable’ı içinde yapılandırın:

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

Bu callable’ı DAG’in mevcut görev düzenlemesi üzerinden kullanın. Proxy, görevi yürüten worker’dan erişilebilir olmalıdır. Proxy kimlik doğrulaması gerektirmeyen izinli genel API çağrıları için HTTP proxy listesi oturumun HTTP proxy URL’si için adaylar sağlar. Kimlik doğrulanmış URL’yi veya diğer hesap yapılandırmasını dağıtımın amaçlanan gizli kaynağında tutun.

İşlev çıktığında Session ve yanıt kapanır. trust_env=False, Requests’in ortam entegrasyonunu devre dışı bırakır; böylece devralınan proxy ayarları bu istemcinin amaçlanan davranışını değiştiremez ve ayrıca Requests’in ortama dayalı CA paketi seçimini de devre dışı bırakır. Gerekirse amaçlanan CA paketini bu istemcinin verify seçeneğiyle sağlayın.

Yönetilen bir Airflow ortamı için yapılandırılan ortam değişkenlerinin kapsamı daha geniştir ve platformun tanımladığı kısıtlar vardır. Rotayı bu Session’a vermek, kararı bu görevin HTTP işlemine bağlı tutar ve worker sürecindeki diğer kod için os.environ değişmez.

İlgili makaleler