Requests proxy lokalni za zadatak u Google Cloud Composeru
Stvorite Requests sesiju lokalnu za zadatak s eksplicitnom rutom umjesto da mijenjate proxy okruženje zajedničkog worker procesa.
Za Cloud Composer zadatak kojem treba jedan odlazni HTTP zahtjev kroz proxy, konfigurirajte HTTP klijent unutar callable funkcije 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
Koristite ovu callable funkciju kroz postojeći raspored zadataka u DAG-u. Proxy mora biti dostupan s workera koji ga izvršava. Za dopuštene pozive javnih API-ja bez proxy autentifikacije, popis HTTP proxyja nudi kandidate za HTTP proxy URL sesije. Autentificirani URL ili drugu konfiguraciju računa držite u izvoru tajni predviđenom za implementaciju.
Sesija i odgovor zatvaraju se kad funkcija završi. trust_env=False onemogućuje integraciju Requests s okruženjem, čime naslijeđene proxy postavke ne mogu zamijeniti namjeravano ponašanje ovog klijenta, a također isključuje odabir CA bundlea u Requests na temelju okruženja. Po potrebi dostavite namjeravani CA bundle kroz verify opciju ovog klijenta.
Varijable okruženja konfigurirane za upravljano Airflow okruženje imaju širi obuhvat i ograničenja definirana platformom. Prosljeđivanje rute ovoj sesiji drži odluku vezanu uz HTTP operaciju ovog zadatka bez mijenjanja os.environ za drugi kod u worker procesu.