HOME > etc > tips

Python3.7 Flask를 Google App Engine에 deploy하는 방법

JSFollow03 Nov 2018

최근 GAE은 python3.7을 지원하기 시작했습니다. 간단한 Flask app을 GAE에 deploy해보았고 과정에 대해서 간략히 정리하였습니다.

프로젝트 생성

먼저 프로젝트 폴더 생성하고, 기본적인 파일들을 생성합니다.

$ mkdir flask-python37
$ cd flask-python37

app.yaml 생성

runtime: python37

requirements.txt 생성

Flask==1.0.2

의존성 설치

pip install  -r requirements.txt

main.py 생성

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
  return "Hello"

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8088, debug=True)  

로컬에서 실행(Run locally)

간단히 Hello를 출력하는 프로그램을 만들었습니다. 이제 로컬에서 실행해보겠습니다.

$ python main.py
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:8088/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 289-847-358

Deploy

로컬에서 테스트가 되었다면 이제 GAE에 deploy해보겠습니다.

$ gcloud app deploy
$ gcloud app browse

Troubleshooting

저의 경우 gcloud app deploy할 때 아래처럼 ERROR가 발생하였는데, gcloud sdk를 업데이트하라고 해서, 최신 버전으로 재설치해주니 해결되었습니다.

Beginning deployment of service [default]...
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 0 files to Google Cloud Storage                ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: Please update to the latest version of gcloud. If you are using the API directly, please provide a value for version.entrypoint.shell. This can be an empty value.

참고