【问题标题】:Google App Engine - This app has no instances deployedGoogle App Engine - 此应用未部署任何实例
【发布时间】:2017-05-27 00:55:01
【问题描述】:

应用实例:

应用版本:

app.yaml:

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /my_uri
  script: path.to.my.script.script.app

我使用 Google App Engine 创建了一个 Python Flask 应用。我最初遇到了一些问题,所以我重新部署了该应用程序。这创造了一个新版本。这样做之后,我删除了之前部署了一个实例的现有版本。当前部署的版本没有部署任何实例,您可以在上面链接的图片中看到。

当我向 my-app-ID.appspot.com/my_uri 提交请求时,我收到 404 错误:

错误:未找到

在此服务器上找不到请求的 URL /my_uri。

我认为这与我的应用没有部署实例有关。那是对的吗?如果是这样,我将如何解决这个问题?

如果不是,404 问题可能是什么原因造成的?

谢谢大家!

【问题讨论】:

  • 您的应用日志怎么说? console.cloud.google.com/logs/viewer
  • 有很多 - 我具体应该寻找什么?一些具体项目包括:“没有处理程序匹配此 URL。”、“instanceIndex:-1”
  • 您期望来自gcloud app browse 的请求的日志。另外 - 您的应用程序版本页面看起来如何? console.cloud.google.com/appengine/versions。你app.yaml 看起来怎么样?
  • 我发布了我的版本截图,并包含了我的 app.yaml。感谢您的帮助。
  • 从您的app.yaml 应用程序只知道如何回复对/my_uri 的请求(唯一带有脚本的模式)。尝试用/.* 替换它或为/ 添加一个处理程序(我怀疑这是gcloud app browse 请求) - 请求日志应该准确显示每个请求的路径。

标签: python-2.7 google-app-engine flask app.yaml


【解决方案1】:

由于您的错误消息表明gcloud app browse 向您的应用请求/ url。

来自Request handlers

当 App Engine 收到对您的应用程序的网络请求时,它会调用 对应于 URL 的处理程序脚本,如 应用程序的[app.yaml][2] 配置文件。 Python 2.7 运行时支持WSGI standardCGI standard for 向后兼容性。首选 WSGI,一些特性 没有它,Python 2.7 就无法工作。你的配置 应用程序的script handlers 确定请求是否 使用 WSGI 或 CGI 处理。

但是您的 app.yaml 文件不包含具有匹配 url 模式的处理程序(因为 / 不匹配 /my_uri),因此 GAE 不知道为该请求启动哪个应用程序脚本,所以它'将返回 404。

因此,您要做的第一件事是在app.yaml 中添加一个处理程序,其url 模式与/ 请求匹配。

您可能需要阅读Getting Started with Flask on App Engine Standard Environment 指南。在那里推荐的处理程序是:

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

仅凭上述内容并不一定能使您的应用正常运行,还有很多其他可能出错的地方。您应该熟悉应用程序的日志查看器,因为这对于调试您的应用程序至关重要。见Understanding request log fields

但在您开始在 GAE 上进行部署之前,请先了解如何在本地运行和测试您的应用。见Using the Local Development Server

【讨论】:

  • 再次感谢您的回答,丹。我编辑了我的帖子以使其更加清晰。我正在尝试向/my_uri 发出请求,GAE 告诉我 URL /my_uri 不存在。
  • 好的。但是这一次应该根据你的请求启动一个实例,即使它最终失败了。您的path.to.my.script.script.py 脚本中的app 定义中是否有/my_uri 的匹配模式?
猜你喜欢
  • 1970-01-01
  • 2015-11-13
  • 2016-05-25
  • 2011-10-21
  • 2013-09-23
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
  • 2015-02-19
相关资源
最近更新 更多