Task-loka Requests-prokura en Google Cloud Composer
Kreu task-lokan Requests-Session kun eksplicita vojo anstataŭ ŝanĝi la prokuran medion de komuna laborprocezo.
Por Cloud Composer-taskaĵo, kiu bezonas unu elirantan HTTP-peton tra prokura servilo, agordu la HTTP-klienton ene de la callable de la taskaĵo:
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
Uzu ĉi tiun callable per la ekzistanta taska aranĝo de la DAG. La prokura servilo devas esti atingebla de la laborprocezo, kiu plenumas ĝin. Por permesitaj alvokoj de publikaj API-oj sen prokura aŭtentigo, la listo de HTTP-prokuraj serviloj liveras kandidatojn por la HTTP-prokura URL de la sesio. Konservu aŭtentigitan URL-on aŭ alian kontan agordon en la sekreta fonto celita por la disfaldiĝo.
La sesio kaj la respondo fermiĝas, kiam la funkcio finiĝas. trust_env=False malŝaltas la median integriĝon de Requests, malhelpante heredajn prokurajn agordojn anstataŭigi la celitan konduton de ĉi tiu kliento, kaj ankaŭ malŝaltas la median elekton de CA-fasko fare de Requests. Provizu la celitan CA-faskon per la opcio verify de ĉi tiu kliento, se necese.
Median variabloj agorditaj por administrita Airflow-medio havas pli larĝan amplekson kaj platforme difinitajn limigojn. Pasigi la vojon al ĉi tiu sesio tenas la decidon ligita al la HTTP-operacio de ĉi tiu taskaĵo sen ŝanĝi os.environ por alia kodo en la laborprocezo.