python×Cloud Functions×Firestore로 API를 손쉽게 만들어보세요. Pt3 배포편
개요
매번 GCP 콘솔에서 배포하는 것도 번거롭기 때문에 로컬에서 명령으로 함수를 배포 할 수 있습니다.
개발 환경
gcloud 도구 설치
로컬에서 배포하려면 gcloud 명령을 사용할 수 있어야 합니다. Mac의 경우 brew로 설치합니다.
$ brew cask install google-cloud-sdk
설치가 끝나면 init로 SDK를 초기화합니다. 아래의 명령을 실행하면 google 계정과 프로젝트 ID가 질문되므로 적절하게 대답하면 초기화가 완료됩니다.
$ gcloud init
배포 준비
소스 준비
로컬에서 배포하는 경우 대상 소스 파일의 이름은
main.py
여야 합니다. 지금까지 만든 소스를 다른 파일 이름으로 만들거나 여러 함수를 배포하기 위해 main.py
에 추가하는 것은 조금 유감스러운 느낌입니다.그래서 파일을 나누어 소스 관리를 편하게 합니다. 다음 기사가 매우 도움이됩니다.
Cloud Functions (Python)로 코드 파일 분할
기사와 같이 외부 소스에서 배포할 함수를
main.py
로 가져옵니다.main.py
from functions.getFilteredUser import get_filtered_user
소스 내용은 Pt1 및 Pt2 기사를 참조하십시오.
다른 함수를 배포하고 싶다면 아래와 같이 import 문을 늘리는 것만 OK입니다.
main.py
from functions.getFilteredUser import get_filtered_user
from functions.getUser import get_user # 追加関数
requirements.txt 준비
콘솔에서 배포할 때와 마찬가지로 외부 패키지를 지정해야 합니다. 로컬에서 main.py와 동일한 경로에 requirements.txt를 만듭니다.
requirements.txt
# Function dependencies, for example:
# package>=version
google-cloud-firestore==1.2.0
폴더의 최종 형태
다음과 같은 폴더 구성으로 되어 있다고 생각합니다. ".auth"는 배포 시 필요하지 않습니다.
배포
그래서 드디어 본제의 배포입니다. venv 등
main.py
가 있는 디렉토리에서 다음 명령을 실행합니다.$ gcloud functions deploy get_filtered_user --runtime python37 --trigger-http
명령은
main.py
에 포함된 함수를 get_filtered_user
라는 이름으로 배포합니다. 2분 정도 기다리면 배포가 완료됩니다.deploy 명령 결과
Deploying function (may take a while - up to 2 minutes)...done.
availableMemoryMb: 256
entryPoint: get_filtered_user
httpsTrigger:
url: https://<リージョン>-<プロジェクトID>.cloudfunctions.net/get_filtered_user
labels:
deployment-tool: cli-gcloud
name: projects/<プロジェクトID>/locations/<リージョン>/functions/get_filtered_user
runtime: python37
(以下省略)
엔드포인트 URL은 지정이 없으면 함수 이름과 동일합니다. 변경하거나
main.py
의 다른 함수를 배포하려면 --entry-point
옵션을 사용하여 배포합니다.$ gcloud functions deploy get-user --runtime python37 --trigger-http --entry-point get_user
이 명령은
main.py
에 import한 get_user 함수를 배치합니다. 또한 URL은 get-user입니다.그 외 옵션의 사용법은 공식적으로 쓰여져 있습니다.
Deploying from Your Local Machine
결론
Pt1~Pt3를 통해 GCP, Firebase를 사용하면 로컬에서 만든 함수를 쉽게 API로 배포할 수 있습니다. Hackason 등으로 간단한 어플리케이션을 만들고 싶은 경우에는 편리하다고 생각하므로, 꼭 시험해 보세요.
참고
Reference
이 문제에 관하여(python×Cloud Functions×Firestore로 API를 손쉽게 만들어보세요. Pt3 배포편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ny7760/items/7ff05b255aac2e8fa3a3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)