Feladathelyi Requests proxy a Google Cloud Composerben
Hozzon létre feladathelyi Requests-munkamenetet explicit útvonallal, ahelyett hogy egy megosztott worker-folyamat proxykörnyezetét módosítaná.
Egy Cloud Composer-feladatnál, amelynek egy kimenő HTTP-kérésre van szüksége proxyn keresztül, a HTTP-klienst a feladat callable-jén belül konfigurálja:
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
Ezt a callable-t a DAG meglévő feladat-elrendezésén keresztül használja. A proxynak elérhetőnek kell lennie a feladatot futtató worker felől. Az engedélyezett, proxyhitelesítés nélküli nyilvános API-hívásokhoz a HTTP-proxylista jelölteket kínál a munkamenet HTTP-proxy URL-jéhez. A hitelesített URL-t vagy más fiókkonfigurációt a telepítéshez szánt titkosforrásban tartsa.
A munkamenet és a válasz a függvény kilépésekor bezárul. A trust_env=False letiltja a Requests környezeti integrációját, így az örökölt proxybeállítások nem helyettesíthetik a kliens szánt viselkedését, és a Requests környezetalapú CA-csomagválasztását is kikapcsolja. Szükség esetén a szánt CA-csomagot a kliens verify beállításán keresztül adja át.
A felügyelt Airflow-környezethez beállított környezeti változók szélesebb hatókörrel és platform által meghatározott korlátozásokkal rendelkeznek. Az útvonal átadása ennek a munkamenetnek a döntést ehhez a feladat HTTP-műveletéhez köti anélkül, hogy módosítaná az os.environ-t a worker-folyamat más kódja számára.