Bài hướng dẫn này mình sử dụng microframework Flask làm web app. Những framework khác của Python như Django, Pyramid, Tornado … có thể làm tương tự. Máy tính client để mình code chạy trên Ubuntu 16.04 cùng với Python 2.7.12.
Chuẩn bị
Trước khi chạy và deploy ứng dụng Python web, bạn cần phải chuẩn bị
- Sử dụng Cloud Platform để tạo mới Cloud Platform project. Tạo mới một App Engine application và tất nhiên là enable billing tại: Consle Cloud Google
Cài đặt một số tool cần thiết:
Tạo web Flask đơn giản
Ở bài hưởng dẫn này, mình sẽ tạo một web đơn giản. Nó sẽ in ra dòng Hello Word
Đầu tiên, tạo một thư mục project hello_world
. Trong thư mực project, ta sẽ tạo lần lượt các file:
main.py
: chạy webrequirements.txt
: quản lý lib pythonapp.yaml
: cấu hình deploy và chạy code trên Google App Engine
1. Tạo một file main.py
có nội dung như sau:
import logging
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
"""Return a friendly HTTP greeting."""
return 'Hello World!'
@app.errorhandler(500)
def server_error(e):
logging.exception('An error occurred during a request.')
return """
An internal error occurred: <pre>{}</pre>
See logs for full stacktrace.
""".format(e), 500
if __name__ == '__main__':
# This is used when running locally. Gunicorn is used to run the
# application on Google App Engine. See entrypoint in app.yaml.
app.run(host='127.0.0.1', port=8080, debug=True)
2. Tạo một file requirements.txt
để quản lý các gói
Flask==0.12.2
gunicorn==19.7.1
3. Tiếp theo, bạn chạy thử ứng dụng:
- Nếu bạn không có
virtualenv
bạn có thể cài đặt chúng qua pipsudo pip install virtualenv
- Tạo môi trường cô lập và cài đặt các gói cần thiết
virtualenv venv source venv/bin/activate pip install -r requirements.txt
- Chạy thử
python main.py
- Trên trình duyệt, gõ địa chỉ:
http://localhost:8080
localhost:8080
Deploy
Trước khi deploy, bạn cần tạo một file app.yaml
để cấu hình việc deploy
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 2
Điểm chú ý ở đây là env: flex
flex
là tên môi trường mà web app sẽ chạy trên đó. Thông tin cụ thể bạn có thể vào đây: https://cloud.google.com/appengine/docs/flexible/
OK. Tiếp theo là việc deploy.
1. cd
tới thư mục project hello_world
. Sau đó, gõ lệnh deploy:
gcloud app deploy
Sau khi bạn cài đặt xong Google Cloud SDK bạn có thể sử dụng CLI gcloud
để thực hiện deloy app
2. Trên browser bạn có thể xem kết quả của bạn tại http://YOUR_PROJECT_ID.appspot.com
. Hoặc có thể sử dụng gcloud
:
gcloud app browse
Đã hoàn thành!!
Điểm mấu chốt của bài hướng dẫn
- Tạo được project trên Goold App Engine
- Cài được CLI
gcloud
tools - Có một web app Python: tất nhiên rồi
- Chú ý cấu hình trên
app.yaml
file.
Chúc bạn thành công !!!
source code: https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard_python3/hello_world
Hướng dẫn tạo ứng dụng web Python đơn giản trên Google App Engine
Deploying Envoy with a Python Flask web app and Google Kubernetes Engine
Deploy ứng dụng Rails với Google app engine-P2: Cài đặt SDK cho máy local