部署 Flask 应用到 Google Cloud App Engine 是一个流行的选择,因为它提供了易于使用的平台和自动扩展功能。使用 Flask 的应用工厂模式可以帮助你更好地组织代码,特别是对于较大的应用。下面是将 Flask 应用使用应用工厂模式部署到 Google Cloud App Engine 的步骤,包括如何编写 app.yaml
文件。
确保你的 Flask 应用使用应用工厂模式。这意味着你有一个函数,比如 create_app()
,它返回一个 Flask 应用实例。例如:
# app/__init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
# 配置、注册蓝图等
return app
app.yaml
文件app.yaml
文件是 Google App Engine 的配置文件,用于指定环境配置和资源分配。在你的 Flask 应用的根目录下创建一个 app.yaml
文件,并添加以下内容:
runtime: python39 # 指定 Python 版本
entrypoint: gunicorn -b :$PORT main:app # 指定入口点
env_variables:
FLASK_ENV: 'production'
SECRET_KEY: 'your-secret-key'
handlers:
- url: /static
static_dir: static/
- url: /.*
script: auto
解释:
runtime
: 指定运行时环境,这里使用 Python 3.9。entrypoint
: 指定 GAE 如何启动你的应用。这里使用 gunicorn
作为 WSGI HTTP 服务器,main:app
表示从 main.py
文件的 app
变量启动。env_variables
: 设置环境变量,如 Flask 环境和密钥。handlers
: 配置 URL 处理规则,这里设置了静态文件目录和应用入口。main.py
在你的项目根目录下创建一个 main.py
文件,用于启动你的 Flask 应用:
from app import create_app
app = create_app()
if __name__ == "__main__":
app.run()
在你的 requirements.txt
文件中添加 gunicorn
,它是一个 Python WSGI HTTP 服务器,适用于生产环境:
Flask==2.0.1
gunicorn==20.0.4
然后运行 pip install -r requirements.txt
来安装依赖。
gcloud auth login
登录。gcloud config set project YOUR_PROJECT_ID
gcloud app deploy
部署完成后,你可以使用以下命令查看你的应用:
gcloud app browse
这将打开一个浏览器窗口,显示你的应用。
领取专属 10元无门槛券
手把手带您无忧上云