Proxy vasitəsilə bir xarici HTTP sorğusu tələb edən Cloud Composer tapşırığı üçün HTTP müştərisini tapşırığın callable funksiyası daxilində konfiqurasiya edin:

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 funksiyanı DAG-ın mövcud tapşırıq düzümü vasitəsilə istifadə edin. Proxy onu icra edən worker-dən əlçatan olmalıdır. Proxy autentifikasiyası olmadan icazə verilən açıq API çağırışları üçün HTTP proxy siyahısı sessiyanın HTTP proxy URL-i üçün namizədlər təqdim edir. Autentifikasiyalı URL və ya digər hesab konfiqurasiyası deployment üçün nəzərdə tutulan sirr mənbəyində saxlanmalıdır.

Session və cavab funksiya bitdikdə bağlanır. trust_env=False Requests-in mühit inteqrasiyasını söndürür, bununla miras qalan proxy parametrləri bu müştərinin nəzərdə tutulan davranışını əvəz edə bilməz, həmçinin Requests-in mühitə əsaslanan CA bundle seçimini söndürür. Lazım gələrsə, nəzərdə tutulan CA bundle-ı bu müştərinin verify seçimi ilə ötürün.

İdarə olunan Airflow mühiti üçün konfiqurasiya edilmiş mühit dəyişənləri daha geniş əhatəyə və platformanın müəyyən etdiyi məhdudiyyətlərə malikdir. Marşrutu bu Session-a ötürmək qərarı bu tapşırığın HTTP əməliyyatına bağlayır və worker prosesindəki digər kod üçün os.environ-u dəyişmir.

Əlaqəli məqalələr