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.

Artigos relacionados