Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Azure Functions에서 Python 모듈을 가져오는 방법 완벽 가이드

Azure Functions에서 Python 모듈 가져오기

이 글을 작성하는 시점 기준으로 Azure Functions의 Python 지원은 실험적(experimental) 단계입니다. 따라서 현재로서는 패키지 관리자를 통해 모듈을 함수 인스턴스에 직접 설치할 수 있는 방법이 없습니다. 즉, 필요한 모듈은 코드와 함께 직접 준비해서 배포해야 합니다.

Azure Functions에는 기본적으로 제공되는 Python 모듈이 전혀 없습니다. 모듈을 추가하려면 다음 두 가지 방법 중 하나를 사용해야 합니다.

  • Azure Portal UX를 통한 업로드
  • Kudu를 통한 업로드 (업로드할 파일이 많을 때 특히 유용)

대안: virtualenv 활용하기

가상환경(virtualenv) 사용이 부담스럽지 않다면, 훨씬 체계적으로 의존성을 관리할 수 있는 대안적인 방법이 있습니다. 아래 단계를 순서대로 따라 하세요.

1단계: Python 스크립트 생성

Azure Functions에서 사용할 Python 스크립트를 먼저 생성합니다.

2단계: Kudu 콘솔 열기

Kudu 콘솔을 연 뒤, cd 명령어로 스크립트가 위치한 디렉터리로 이동합니다.

3단계: 가상환경 생성

해당 폴더 안에 새로운 가상환경을 생성합니다.

python -m virtualenv myvenv

4단계: 가상환경 활성화

myvenv/Scripts 디렉터리로 이동한 후 activate.bat을 실행하여 가상환경을 활성화합니다. 셸 프롬프트 앞에 (myvenv)가 표시되면 정상적으로 활성화된 것입니다.

cd myvenv/Scripts
activate.bat

5단계: pip 업데이트

최신 버전의 pip를 사용하도록 업데이트합니다.

python -m pip install -U pip

6단계: 의존성 설치

pip를 사용하여 프로젝트에 필요한 라이브러리를 설치합니다. 아래는 Django를 설치하는 예시입니다.

python -m pip install django

sys.path에 가상환경 경로 추가하기

설치가 완료되었다면, 이제 스크립트에서 모듈을 import해야 하는 모든 위치에서 sys.path 변수에 해당 가상환경의 site-packages 경로를 추가해 주면 됩니다.

예를 들어 다음과 같이 작성할 수 있습니다.

import sys, os.path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), 'myvenv/Lib/site-packages')))

이렇게 하면 Azure Functions 환경에서도 별도의 패키지 관리자 지원 없이 외부 라이브러리를 자유롭게 사용할 수 있습니다. 참고로 이후 릴리스된 Azure Functions 버전에서는 Python 지원이 공식화되어 requirements.txt 기반의 의존성 관리를 제공하므로, 최신 런타임 버전을 사용한다면 해당 방식을 우선 검토해 보는 것도 좋습니다.