Uppgiftslokal Requests-proxy i Google Cloud Composer
Skapa en uppgiftslokal Requests-session med en explicit rutt i stället för att ändra proxy-miljön för en delad worker-process.
För en Cloud Composer-uppgift som behöver en utgående HTTP-begäran via en proxy, konfigurera HTTP-klienten inuti uppgiftens callable:
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
Använd denna callable via DAG:ens befintliga uppgiftsupplägg. Proxy:n måste vara nåbar från workern som kör uppgiften. För tillåtna offentliga API-anrop utan proxyautentisering ger HTTP-proxylistan kandidater till sessionens HTTP-proxy-URL. Förvara en autentiserad URL eller annan kontokonfiguration i utrullningens avsedda hemlighetskälla.
Sessionen och svaret stängs när funktionen avslutas. trust_env=False stänger av Requests miljöintegrering, vilket hindrar ärvda proxyinställningar från att ersätta denna klients avsedda beteende, och stänger också av Requests miljöbaserade val av CA-paket. Ange det avsedda CA-paketet via denna klients verify-alternativ om det behövs.
Miljövariabler som konfigurerats för en hanterad Airflow-miljö har bredare omfattning och plattformsdefinierade begränsningar. Att skicka rutten till denna session håller beslutet kopplat till denna uppgifts HTTP-operation utan att ändra os.environ för annan kod i worker-processen.