Cloud Composer-ի այն առաջադրանքի համար, որը պահանջում է մեկ արտագնա HTTP հարցում պրոքսիի միջոցով, կարգավորեք HTTP հաճախորդը առաջադրանքի callable-ի ներսում․

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

Օգտագործեք այս callable-ը DAG-ի գոյություն ունեցող առաջադրանքների դասավորությամբ։ Պրոքսին պետք է հասանելի լինի այն worker-ից, որը կատարում է առաջադրանքը։ Առանց պրոքսի նույնականացման թույլատրված հանրային API կանչերի համար HTTP պրոքսիների ցանկը տալիս է թեկնածուներ նստաշրջանի HTTP պրոքսի URL-ի համար։ Նույնականացված URL-ը կամ այլ հաշվի կարգավորումը պահեք տեղակայման համար նախատեսված գաղտնիքի աղբյուրում։

Նստաշրջանը և պատասխանը փակվում են, երբ ֆունկցիան ավարտվում է։ trust_env=False-ն անջատում է Requests-ի միջավայրի ինտեգրումը՝ թույլ չտալով ժառանգված պրոքսի կարգավորումներին փոխարինել այս հաճախորդի նախատեսված վարքը, և նաև անջատում է Requests-ի միջավայրի վրա հիմնված CA bundle-ի ընտրությունը։ Անհրաժեշտության դեպքում նախատեսված CA bundle-ը տրամադրեք այս հաճախորդի verify տարբերակով։

Կառավարվող Airflow միջավայրի համար կարգավորված միջավայրի փոփոխականներն ունեն ավելի լայն ընդգրկույթ և հարթակով սահմանված սահմանափակումներ։ Երթուղին այս նստաշրջանին փոխանցելը որոշումը կապում է այս առաջադրանքի HTTP գործողությանը՝ չփոխելով os.environ-ը worker գործընթացի մյուս կոդի համար։

Առնչվող հոդվածներ