Google Cloud Composer-da tapşırıq daxilində Requests proxy-si
Paylaşılan worker prosesinin proxy mühitini dəyişmək əvəzinə açıq marşrutla tapşırıq daxilində Requests Session yaradın.
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.