Zadatkovno lokalni Requests proxy u Google Cloud Composeru
Napravi Requests sesiju lokalnu za zadatak sa eksplicitnom rutom umesto menjanja proxy okruženja deljenog worker procesa.
Za Cloud Composer zadatak kojem treba jedan odlazni HTTP zahtev kroz proxy, konfiguriši HTTP klijent unutar callable-a zadatka:
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
Koristi ovaj callable kroz postojeći raspored zadataka DAG-a. Proxy mora biti dostupan sa worker-a koji izvršava zadatak. Za dozvoljene pozive javnog API-ja bez proxy autentifikacije, lista HTTP proxy-ja daje kandidate za HTTP proxy URL sesije. Autentifikovani URL ili drugu konfiguraciju naloga čuvaj u predviđenom izvoru tajni za deploy.
Sesija i odgovor se zatvaraju kada funkcija završi. trust_env=False isključuje Requests integraciju sa okruženjem, sprečavajući da nasleđena proxy podešavanja zamene predviđeno ponašanje ovog klijenta, i takođe isključuje izbor CA paketa u Requests-u zasnovan na okruženju. Ako je potrebno, obezbedi predviđeni CA paket kroz verify opciju ovog klijenta.
Promenljive okruženja konfigurisane za upravljano Airflow okruženje imaju širi obim i ograničenja definisana platformom. Prosleđivanje rute ovoj sesiji zadržava odluku vezanu za HTTP operaciju ovog zadatka bez menjanja os.environ za drugi kod u worker procesu.