Proxyserver Requests vázaný na úlohu v Google Cloud Composer
Vytvořte relaci Requests vázanou na úlohu s explicitní trasou, místo abyste měnili proxy prostředí sdíleného pracovního procesu.
Pro úlohu Cloud Composer, která potřebuje jeden odchozí požadavek HTTP přes proxy, nakonfigurujte klienta HTTP uvnitř callable úlohy:
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
Tento callable použijte prostřednictvím stávajícího uspořádání úloh v DAG. Proxy musí být dostupná z pracovního procesu, který úlohu vykonává. Pro povolená volání veřejných API bez autentizace proxy nabízí seznam proxy HTTP kandidáty pro URL proxy HTTP této relace. Autentizovanou URL nebo jinou konfiguraci účtu uchovávejte ve zdroji tajemství určeném pro nasazení.
Relace i odpověď se zavřou při ukončení funkce. trust_env=False vypíná integraci Requests s prostředím, takže zděděná nastavení proxy nenahradí zamýšlené chování tohoto klienta, a zároveň vypíná výběr CA bundle v Requests podle prostředí. Zamýšlený CA bundle v případě potřeby předejte přes volbu verify tohoto klienta.
Proměnné prostředí nakonfigurované pro spravované prostředí Airflow mají širší rozsah a omezení daná platformou. Předání trasy této relaci udržuje rozhodnutí navázané na operaci HTTP této úlohy, aniž by měnilo os.environ pro jiný kód v pracovním procesu.