Un proxy de Requests local á tarefa en Google Cloud Composer
Cree unha sesión de Requests local á tarefa cunha ruta explícita en lugar de cambiar o ambiente de proxy dun proceso worker compartido.
Para unha tarefa de Cloud Composer que precisa unha única solicitude HTTP saínte a través dun proxy, configure o cliente HTTP dentro do callable da tarefa:
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
Use este callable mediante a disposición de tarefas existente do DAG. O proxy debe ser accesible desde o worker que a executa. Para chamadas permitidas a API públicas sen autenticación de proxy, a lista de proxies HTTP ofrece candidatos para o URL de proxy HTTP da sesión. Manteña un URL autenticado ou outra configuración de conta na fonte de segredos prevista para o despregamento.
A sesión e a resposta péchanse cando remata a función. trust_env=False desactiva a integración de Requests co ambiente, o que impide que a configuración de proxy herdada substitúa o comportamento previsto deste cliente, e tamén desactiva a selección de CA bundle de Requests baseada no ambiente. Proporcione o CA bundle previsto mediante a opción verify deste cliente se é necesario.
As variables de ambiente configuradas para un ambiente de Airflow xestionado teñen un alcance maior e restricións definidas pola plataforma. Pasar a ruta a esta sesión mantén a decisión ligada á operación HTTP desta tarefa sen cambiar os.environ para outro código no proceso worker.