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.

Aiheeseen liittyvät artikkelit