asyncio
나 aiohttp
같은 라이브러리를 사용하려 할 때, 해당 라이브러리들이 Airflow Docker Compose 컨테이너 내부에 설치되어 있지 않다면, 이를 활용한 코드는 정상적으로 작동하지 않습니다.Connection
항목에 없는 연결을 어떻게 추가할 수 있는지 알아보겠습니다.scheduler
, triggerer
, webserver
, worker
) 모두에 python 라이브러리가 설치되면 될 것입니다. 하지만 이는 작업이 번거롭고, docker compose 가 down되면 또 새롭게 작업을 반복해줘야 하는 불편함이 있습니다._PIP_ADDITIONAL_REQUIREMENTS
환경변수에 필요한 패키지를 아래와 같이 추가해주고 docker compose up
을 해주면 됩니다. 예를 들어, duckdb
, polars
, aiohttp
패키지 설치가 필요한 상황이라면 이렇게 작성합니다._PIP_ADDITIONAL_REQUIREMENTS: ${_PIP_ADDITIONAL_REQUIREMENTS:-duckdb polars aiohttp}
docker compose up
을 하게되면 컨테이너가 뜰 때 추가 라이브러리들이 설치되기 때문에 airflow 시스템에서 해당 라이브러리를 활용한 코드를 정상적으로 사용할 수 있습니다.Admin
-Connections
-Add Connection
항목의 드롭다운 메뉴에서 확인 가능합니다.apache-airflow-providers-apache-kafka
이 라이브러리를 docker compose YAML 파일의 _PIP_ADDITIONAL_REQUIREMENTS
환경변수에 추가하여 시스템을 재시작해주면 됩니다.connection
목록에 이전에는 없던 외부 Provider가 추가되어 보이는 것을 확인할 수 있다.