Un proxy Requests locale all'attività in Google Cloud Composer
Create una sessione Requests locale all'attività con una rotta esplicita invece di modificare l'ambiente proxy di un processo worker condiviso.
Per un'attività di Cloud Composer che richiede una singola richiesta HTTP in uscita tramite un proxy, configurate il client HTTP dentro il callable dell'attività:
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
Usate questo callable tramite la disposizione delle attività già presente nel DAG. Il proxy deve essere raggiungibile dal worker che la esegue. Per le chiamate consentite ad API pubbliche senza autenticazione proxy, la lista di proxy HTTP fornisce candidati per l'URL del proxy HTTP della sessione. Conservate un URL autenticato o un'altra configurazione dell'account nell'origine dei segreti prevista per il deployment.
La sessione e la risposta si chiudono all'uscita della funzione. trust_env=False disattiva l'integrazione di Requests con l'ambiente, impedendo a impostazioni proxy ereditate di sostituire il comportamento previsto di questo client, e disattiva anche la selezione del CA bundle di Requests basata sull'ambiente. Fornite il CA bundle previsto tramite l'opzione verify di questo client se necessario.
Le variabili d'ambiente configurate per un ambiente Airflow gestito hanno una portata più ampia e restrizioni definite dalla piattaforma. Passare la rotta a questa sessione mantiene la decisione legata all'operazione HTTP di questa attività senza modificare os.environ per altro codice nel processo worker.