Python으로 작성된 Cloud Functions의 종속 항목을 지정하는 방법은 두 가지로, pip 패키지 관리자의 requirements.txt
파일을 사용하는 방법 또는 로컬 종속 항목을 함수와 함께 패키징하는 방법이 있습니다.
Pipfile/Pipfile.lock 표준을 사용하는 종속 항목 사양은 지원되지 않습니다. 프로젝트에 이러한 파일이 존재해선 안 됩니다.
pip를 사용하여 종속 항목 지정
Python의 종속 항목은 pip로 관리되며 requirements.txt
라는 메타데이터 파일로 표현됩니다.
이 파일은 함수 코드가 포함된 main.py
파일과 동일한 디렉터리에 있어야 합니다.
함수를 배포하거나 재배포할 때 Cloud Functions
pip을 사용하여 최신 버전의
requirements.txt
파일에 선언된 대로 종속 항목을 표시합니다.
requirements.txt
파일에는 패키지당 한 줄이 포함됩니다. 각 줄에는 패키지 이름과 선택사항으로 요청된 버전이 포함됩니다. 자세한 내용은 requirements.txt
참조를 참고하세요.
해당 빌드가 종속 항목 버전 변경사항의 영향을 받지 않도록 방지하려면 종속 항목 패키지를 특정 버전으로 고정하는 것이 좋습니다.
다음은 requirements.txt
파일의 예시입니다.
functions-framework requests==2.20.0 numpy
함수 프레임워크는 모든 함수에 필요한 종속 항목입니다. Cloud Functions 함수가 만들어지면 사용자를 대신하여 설치하므로 명확성을 위해 이를 명시적 종속 항목으로 포함해야 합니다.
함수에서 비공개 종속 항목을 사용하는 경우 functions-framework
를 비공개 레지스트리에 미러링하는 것이 좋습니다. 공개 인터넷에서 패키지를 설치하지 않으려면 미러링된 functions-framework
를 함수에 대한 종속 항목으로 포함합니다.
로컬 종속 항목 패키징
함수와 함께 종속 항목을 패키징하고 배포할 수도 있습니다. 이 방법은 pip 패키지 관리자를 통해 종속 항목을 사용할 수 없거나 Cloud Functions 환경의 인터넷 액세스가 제한된 경우에 유용합니다.
예를 들어 다음과 같은 디렉터리 구조를 사용할 수 있습니다.
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
그런 다음 import
문을 사용하여 localpackage
에서 평소처럼 코드를 가져올 수 있습니다.
# Code in main.py from localpackage import script
이 방법은 setup.py
파일을 실행하지 않습니다. 이러한 파일이 포함된 패키지는 계속 번들로 제공될 수 있지만 Cloud Functions에서 올바르게 실행되지 않을 수 있습니다.