Per a una tasca de Cloud Composer que necessita una única sol·licitud HTTP sortint a través d'un proxy, configureu el client HTTP dins del callable de la tasca:

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

Utilitzeu aquest callable a través de l'organització de tasques existent del DAG. El proxy ha de ser accessible des del worker que l'executa. Per a crides permeses a API públiques sense autenticació de proxy, la llista de proxys HTTP ofereix candidats per a l'URL de proxy HTTP de la sessió. Manteniu un URL autenticat o una altra configuració de compte a la font de secrets prevista per al desplegament.

La sessió i la resposta es tanquen quan la funció acaba. trust_env=False desactiva la integració de Requests amb l'entorn, cosa que evita que la configuració de proxy heretada substitueixi el comportament previst d'aquest client, i també desactiva la selecció de CA bundle de Requests basada en l'entorn. Si cal, proporcioneu el CA bundle previst mitjançant l'opció verify d'aquest client.

Les variables d'entorn configurades per a un entorn Airflow gestionat tenen un abast més ampli i restriccions definides per la plataforma. Passar la ruta a aquesta sessió manté la decisió lligada a l'operació HTTP d'aquesta tasca sense canviar os.environ per a altre codi del procés worker.

Articles relacionats