繁体   English   中英

Google App Engine Python:部署时出现 yaml 配置文件错误

[英]Google App Engine Python: Error in yaml config file when deploying

我正在使用 Google App Engine,Python37 环境。 我今天尝试部署微服务时收到一条错误消息:
我运行命令:

gcloud app deploy app.yaml

得到错误:

...
File upload done.
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: script field for handler '/.*' 
must be set to 'auto' for runtime python37.
PS C:\path_to_app> gcloud app deploy app.yaml
...

我的 app.yaml 是:

service: service_name
runtime: python37

handlers:
- url: /.*
script: main.py

和我最近部署的其他微服务看起来完全一样,只是服务名称不同。
我试图重新部署一个已经在运行的服务并收到相同的错误消息。
所以我仔细检查了 app.yaml 参考文档: https : //cloud.google.com/appengine/docs/standard/python3/config/appref
但是我无法找出问题所在,也找不到为什么以前工作过的同一个 yaml 文件不再工作了。

有谁知道最近几天 Google App Engine 上可能出了什么问题,或者可能会发生什么变化?

提前致谢。

根据 Python 3.7 的AppEngine 文档

脚本元素唯一接受的值是auto

以下是文档中的示例条目:

handlers:
- url: /images
  static_dir: static/images

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

@Omair的早期答案虽然正确,但只是故事的一部分。 OP 的原始问题利用了 App Engine 第一代(“Gen1”)运行时应用程序的app.yaml配置文件,其中发生路由,需要handlers:script:指令handlers: 虽然这是一个完全有效app.yaml的第一代( go111python [2.5], python27php55 )的应用程序,它会为下一代(“第二代”)不工作的应用程序。

注意: Python 2 仅受 App Engine Gen1 支持,而 Python 3 仅受 App Engine Gen2(Standard 或 Flex)支持,因此如果您从 Python 2 迁移到 3,您也会从 Gen1 移植到 Gen2,并且需要保持还要记住这些差异。 (不幸的是,这意味着从webapp2迁移到处理路由的 web 框架,即 Django、Flask 等)

App Engine Gen2要求路由由您的框架完成 因此,所有 Gen1 app.yaml文件都需要更新。 handlers:使用handlers:因为您的路由必须被删除或更改为auto (因为它现在由您的 Web 框架完成)。 如果您有特定的应用程序启动说明,您可以提供一个entrypoint:指令 看看这些例子

handlers:entrypoint:都是可选的。 如果所有脚本处理程序都是auto ,则不需要handlers:除非您的应用程序提供静态文件,如客户端 JS、CSS、HTML、图像等,并且entrypoint:是可选的,因为如果您不指定服务器,默认情况下会选择(并启动) gunicorn 基本上,如果您采用所有默认值并且不提供静态文件,您可以将app.yaml减少到 1 行,就像这样 该示例来自我正致力于帮助开发人员将 Python 2 App Engine 应用程序升级到 Python 3 的存储库,他们需要比官方迁移指南中提供的更多帮助。

部署具有蓝图结构的 Flask 应用程序时出现此错误。 解决方案是将main.py文件与app.yaml文件放在同一目录中。 main.py文件中,导入 app 对象,例如from app import app (这里的第一个“app”是包含init文件的文件夹,在其中创建了main.py应用程序实例)。 执行此操作后,将脚本设置为自动应该可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM