Requests proxy lokalni za zadatak u Google Cloud Composeru
Napravite Requests sesiju lokalnu za zadatak s eksplicitnom rutom umjesto da mijenjate proxy okruženje dijeljenog 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 je izvršava. Za dopuštene pozive javnih API-ja bez proxy autentifikacije, lista HTTP proxyja nudi kandidate za HTTP proxy URL sesije. Autentificirani URL ili drugu konfiguraciju računa držite u za deployment predviđenom izvoru tajni.
Sesija i odgovor se zatvaraju kad funkcija završi. trust_env=False onemogućava integraciju Requests sa okruženjem, čime naslijeđene proxy postavke ne mogu zamijeniti namjeravano ponašanje ovog klijenta, a također isključuje odabir CA bundle-a u Requests na osnovu 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 za HTTP operaciju ovog zadatka bez mijenjanja os.environ za drugi kod u worker procesu.