Hướng dẫn tạo ứng dụng web Python đơn giản trên Google App Engine
Bài đăng này đã không được cập nhật trong 4 năm
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 web
- requirements.txt: quản lý lib python
- app.yaml: cấu hình deploy và chạy code trên Google App Engine
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)
Tạo một file requirements.txt để quản lý các gói
Flask==0.12.2
gunicorn==19.7.1
Tiếp theo, bạn chạy thử ứng dụng:
- Nếu bạn không có
virtualenvbạn có thể cài đặt chúng qua pip
sudo 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

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.
cdtới thư mục projecthello_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
- 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ụnggcloud:
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
gcloudtools - Có một web app Python: tất nhiên rồi
- Chú ý cấu hình trên
app.yamlfile.
Chúc bạn thành công !!!
All rights reserved