Para una tarea de Cloud Composer que necesita una única solicitud HTTP saliente a través de un proxy, configure el cliente HTTP dentro del callable de la tarea:

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

Utilice este callable mediante la disposición de tareas existente del DAG. El proxy debe ser accesible desde el worker que la ejecuta. Para llamadas permitidas a API públicas sin autenticación de proxy, la lista de proxies HTTP ofrece candidatos para la URL de proxy HTTP de la sesión. Mantenga una URL autenticada u otra configuración de cuenta en la fuente de secretos prevista para el despliegue.

La sesión y la respuesta se cierran cuando termina la función. trust_env=False desactiva la integración de Requests con el entorno, lo que impide que la configuración de proxy heredada sustituya el comportamiento previsto de este cliente y también desactiva la selección de CA bundle de Requests basada en el entorno. Proporcione el CA bundle previsto mediante la opción verify de este cliente si es necesario.

Las variables de entorno configuradas para un entorno de Airflow gestionado tienen un alcance mayor y restricciones definidas por la plataforma. Pasar la ruta a esta sesión mantiene la decisión ligada a la operación HTTP de esta tarea sin cambiar os.environ para otro código del proceso worker.

Artículos relacionados