Ülesandepõhine Requests-proxy Google Cloud Composeris
Looge ülesandepõhine Requestsi sessioon selgesõnalise teega, selle asemel et muuta jagatud worker-protsessi proxy-keskkonda.
Cloud Composeri ülesande jaoks, mis vajab ühte väljuvat HTTP-päringut proxy kaudu, seadistage HTTP-klient ülesande callable'i sees:
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
Kasutage seda callable'it DAG-i olemasoleva ülesandekorralduse kaudu. Proxy peab olema kättesaadav workerist, mis seda täidab. Lubatud avalike API-kutsete jaoks ilma proxy-autentimiseta pakub HTTP-proxyde loend kandidaate sessiooni HTTP-proxy URL-ile. Hoidke autenditud URL või muu konto konfiguratsioon juurutuse jaoks ette nähtud saladuste allikas.
Sessioon ja vastus suletakse funktsiooni lõppedes. trust_env=False lülitab välja Requestsi keskkonnaintegratsiooni, mistõttu päritud proxy-seaded ei saa asendada selle kliendi kavandatud käitumist, ning lülitab välja ka Requestsi keskkonnapõhise CA-kimbu valiku. Vajadusel edastage kavandatud CA-kimp selle kliendi verify-valiku kaudu.
Haldatud Airflow-keskkonna jaoks seadistatud keskkonnamuutujatel on laiem ulatus ja platvormi määratud piirangud. Tee edastamine sellele sessioonile hoiab otsuse seotud selle ülesande HTTP-toiminguga, muutmata os.environ'i worker-protsessi muu koodi jaoks.