Tehtäväkohtainen Requests-välityspalvelin Google Cloud Composerissa
Luo tehtäväkohtainen Requests-istunto ja määritä reitti suoraan sen sijaan, että muuttaisit jaetun worker-prosessin välityspalvelinympäristöä.
Cloud Composer -tehtävälle, joka tarvitsee yhden lähtevän HTTP-pyynnön välityspalvelimen kautta, määritä HTTP-asiakasohjelma tehtävän callablen sisällä:
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
Käytä tätä callablea DAGin nykyisen tehtäväjärjestelyn kautta. Välityspalvelimen on oltava tavoitettavissa työn suorittavasta workerista. Sallituille julkisten API:en kutsuille ilman välityspalvelimen todennusta HTTP-välityspalvelinluettelo tarjoaa ehdokkaita istunnon HTTP-välityspalvelimen URL-osoitteeksi. Pidä todennettu URL tai muu tilitieto käyttöönotolle tarkoitetussa salaisuuksien lähteessä.
Istunto ja vastaus suljetaan funktion päättyessä. trust_env=False poistaa käytöstä Requestsin ympäristöintegraation, jolloin perityt välityspalvelinasetukset eivät voi korvata tämän asiakasohjelman aiottua toimintaa, ja sammuttaa myös Requestsin ympäristöperusteisen CA-nipun valinnan. Anna aiottu CA-nippu tarvittaessa tämän asiakasohjelman verify-vaihtoehdon kautta.
Hallitulle Airflow-ympäristölle määritetyillä ympäristömuuttujilla on laajempi ulottuvuus ja alustan määrittämät rajoitukset. Reitin välittäminen tälle istunnolle pitää päätöksen sidottuna tämän tehtävän HTTP-toimintoon muuttamatta os.environia worker-prosessin muulle koodille.