【问题标题】:How/where does Google App Engine cache YAML (changing `script`)?Google App Engine 如何/在哪里缓存 YAML(更改“脚本”)?
【发布时间】:2022-01-21 17:31:42
【问题描述】:

原来我的app.yaml有这个:

runtime: python39

- url: .*
  script: main.app

我将脚本文件名更改为gae.py,因此将app.yaml 更新为:

runtime: python39

- url: .*
  script: gae.app

新版本不再启动:

ModuleNotFoundError: 没有名为“main”的模块

我已尝试更改url,但它仍在尝试使用现在不存在的main.py 来加载WSGI 应用程序。当我查看版本的源代码时,我看到了正确的app.yaml 和文件结构;我没有看到main 提到任何地方

有什么想法吗?

【问题讨论】:

  • 我不知道,但你为什么要改变这个?我会保持原样。

标签: google-app-engine google-app-engine-python


【解决方案1】:

问题不在于缓存,而是在 Google App Engine 标准的 Python 3 世界中不再使用(并且被忽略)script

脚本:可选。指定对特定处理程序的请求应针对您的应用程序。脚本元素唯一可接受的值是 auto,因为所有流量都是使用 entrypoint 命令提供的。为了使用静态处理程序,至少有一个处理程序必须包含 line script: auto 或定义一个入口点元素才能成功部署。

(https://cloud.google.com/appengine/docs/standard/python3/config/appref#handlers_element)

修复方法是覆盖entrypoint,默认为:

/bin/sh -c exec gunicorn main:app --workers 2 -c /config/gunicorn.py

(https://cloud.google.com/appengine/docs/standard/python3/runtime#application_startup)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 2017-06-23
    相关资源
    最近更新 更多