Google App Engine - 此应用没有部署实例

时间:2017-01-12 02:50:38

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

应用实例:

enter image description here

应用版本:

App Versions Screenshot

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。

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

如果没有,可能导致404问题的原因是什么?

谢谢大家!

1 个答案:

答案 0 :(得分:2)

正如您的错误消息指示gcloud app browse向您的应用发出/网址请求。

来自Request handlers

  

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

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

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

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

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

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

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