프록시를 통한 아웃바운드 HTTP 요청이 하나 필요한 Cloud Composer 작업이라면, 작업의 callable 안에서 HTTP 클라이언트를 구성하세요.

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 번들 선택도 끕니다. 필요하면 이 클라이언트의 verify 옵션으로 의도된 CA 번들을 지정하세요.

관리형 Airflow 환경에 구성된 환경 변수는 범위가 더 넓고 플랫폼이 정한 제약이 있습니다. 경로를 이 세션에 넘기면 worker 프로세스의 다른 코드를 위해 os.environ을 바꾸지 않고도 결정이 이 작업의 HTTP 작업에 붙어 있게 됩니다.

관련 글