【问题标题】:Google App Engine Backend PythonGoogle App Engine 后端 Python
【发布时间】:2012-10-15 17:12:59
【问题描述】:

我在让后端在 Google App Engine Python 中运行时遇到问题。

在我的 app.yaml 中,我添加了这个处理程序:

- url: /backend/.*
  script: backend.app
  login: admin

在 backend.app 中,我为“/”定义了一个处理程序。

我的 backends.yaml 看起来像这样:

backends:
- name: dbops
  options: dynamic

在我的前端应用程序中,我添加了一个任务队列来调用后端:

taskqueue.add(url='/backend/', target='dbops') 

当我查看日志时,我看到的只是 404 错误,并且后端没有显示在后端部分下,但是如果我在实例下查看,则会启动一个新实例。任何人都得到了任何指导,因为后端文档并不是很有帮助。

编辑

在下面 Alex 的帮助下,我已经在后端运行了代码。我错过了部署到后端的步骤。

appcfg.py backends ./ update dbops

现在我在管理界面中看到后端实例运行良好,但任务队列不断返回 404 错误,我确定我做错了什么愚蠢的错误。

我在我的 backend.py 中配置处理程序的方式是否与我在我的 frontend.py 中配置的一样?我可以访问后端实例的 frontend.py 中定义的处理程序,但不能访问 backend.py 中定义的处理程序。

编辑 2012 年 10 月 17 日

经过一番挖掘,我发现我的通配符处理程序列在 apps.yaml 中我的后端处理程序之前。所以现在后端处理程序有点工作。我将此进程定义为管理员处理程序,但它仍然超时。

为什么这不起作用?它总是返回 405 错误并不断重试。

taskqueue.add(url='/backend/', target='dbops')

【问题讨论】:

    标签: python google-app-engine backend


    【解决方案1】:

    /backend 永远不会匹配 /backend/.* 模式。您应该在末尾添加一个斜杠:

    taskqueue.add(url='/backend/', target='dbops')
    

    此外,在您的后端,您可能应该做同样的事情并在/backend/ 上定义您的处理程序。

    【讨论】:

    • 不管我使用 /backend 还是 /backend/ 我仍然得到 404。不确定在后端定义处理程序是什么意思,文档指定您不能在两者中声明处理程序app.yaml 和 backends.yaml。但话说回来,这些文档对于后端来说并不是世界上最清晰的。
    • 我指的是您的“我为 / 定义了一个处理程序”部分。
    • 顺便说一句,你确定你做了一个appcfg.py backends update 来上传你的后端代码吗?
    • 该死,我希望它是那么简单,但仍然没有骰子。当我在应用程序中指定 '/backend/' 作为处理程序时,仍然得到 404。
    • 等一下,如果“后端未显示在后端部分”中,您的意思是您在 App Engine 控制台后端中看不到任何内容,这仅表示您没有上传后端/conf .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 2018-09-25
    • 1970-01-01
    • 2012-08-06
    相关资源
    最近更新 更多