Un proxy de Requests local a la tasca a Google Cloud Composer
Creeu una sessió de Requests local a la tasca amb una ruta explícita en lloc de canviar l'entorn de proxy d'un procés worker compartit.
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.