Un proxy Requests local à la tâche dans Google Cloud Composer
Créez une session Requests locale à la tâche avec une route explicite plutôt que de modifier l'environnement proxy d'un processus worker partagé.
Pour une tâche Cloud Composer qui a besoin d'une seule requête HTTP sortante via un proxy, configurez le client HTTP à l'intérieur du callable de la tâche :
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
Utilisez ce callable via l'organisation de tâches existante du DAG. Le proxy doit être joignable depuis le worker qui l'exécute. Pour les appels autorisés à des API publiques sans authentification de proxy, la liste de proxys HTTP fournit des candidats pour l'URL de proxy HTTP de la session. Conservez une URL authentifiée ou toute autre configuration de compte dans la source de secrets prévue pour le déploiement.
La session et la réponse se ferment à la sortie de la fonction. trust_env=False désactive l'intégration de Requests à l'environnement, ce qui empêche des réglages de proxy hérités de remplacer le comportement voulu de ce client, et désactive aussi la sélection du CA bundle par Requests selon l'environnement. Fournissez le CA bundle voulu via l'option verify de ce client si nécessaire.
Les variables d'environnement configurées pour un environnement Airflow géré ont une portée plus large et des restrictions définies par la plateforme. Transmettre la route à cette session garde la décision attachée à l'opération HTTP de cette tâche sans modifier os.environ pour d'autre code du processus worker.