【问题标题】:how to construct a correct app.yaml for app engine standard environment for a Django app如何为 Django 应用程序的应用程序引擎标准环境构建正确的 app.yaml
【发布时间】:2025-12-05 09:40:01
【问题描述】:

我正在将 Python rest_framework 应用程序部署到应用程序引擎,但我的 app.yaml 失败并显示错误消息 (gcloud.app.deploy) Error Response: [13] Failed to create manifest file.

我试图修改app.yaml 文件。我试图通过将python版本声明为python27来部署应用程序,我成功部署了它。但是,由于我在本地计算机上的virtualenv 设置为python37,因此会出现其他错误。

runtime: python37
entrypoint: gunicorn -b :8080 workshop.wsgi
instance_class: F2

beta_settings:
cloud_sql_instances: neverland:europe-west3:neverlandsql2

env_variables:
  SECRET_KEY: "*****************************************"
  DJANGO_SETTINGS_MODULE: "workshop.settings.settings"
  DEBUG: "True"


handlers:
- url: /static
  static_dir: static/

- url: /.*
  secure: always
  redirect_http_response_code: 301
  script: auto

我希望 app.yaml 能够正常工作,即使部署环境是 python37

【问题讨论】:

  • 如果您导航到console.cloud.google.com/cloud-build/builds,您是否看到任何失败的项目构建?如果是的话,你能分享一下日志的内容吗?
  • 我没有看到任何构建失败,因为应用无法部署。
  • 您能否分享您使用的部署命令,以及添加了--verbosity=debug 标志的运行它的整个结果?

标签: django-rest-framework google-app-engine-python app.yaml


【解决方案1】:

经过更多研究并联系谷歌。看来我的项目结构可以进一步改进,Google 告诉我,我的 app.yaml 中提到的 python 3.7 目前是实验性的,可以使用任何其他 python。

尝试部署时 CLOUDSDK_PYTHON 变量的值是多少?目前对 3.7 版的支持是实验性的,请参阅下面的答案:-

此错误与SDK使用的Python版本有关:目前为gcloud 需要 Python 2.7.x 版本,并且有对 3.4 及更高版本的实验性支持。 您可以通过在 CLI 上运行 gcloud topic 启动命令来检查这一点。 实验性支持就是它所说的,所以在这种情况下你不能部署你的应用程序 将 CLOUDSDK_PYTHON 设置为 python37。事情应该朝着全面发展 支持;同时,我们应该保持耐心。

这种情况不应阻止您使用所需的任何 Python 版本 为您的项目和您的应用程序本身。

【讨论】:

    最近更新 更多