【问题标题】:Google App Engine and backends: how to configure it on development server?Google App Engine 和后端:如何在开发服务器上配置它?
【发布时间】:2012-04-05 03:22:11
【问题描述】:

我的backends.yaml配置

backends:
- name: mybackend
  class: B1
  instances: 1
  options: dynamic

app.yaml

handlers:
- url: http://mybackend.myapp.appspot.com
  script: mybackend.py
  login: admin

在开发服务器上本地运行我得到这个错误:

无法将值“http://mybackend.myapp.appspot.com”分配给属性“url”: url 的值 'http://mybackend.myapp.appspot.com' 与表达式 '^(?!\^)/|.|((.).*(?!\$).$' 不匹配

如何在开发服务器上测试后端?

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    我认为该网址应该是您网站的相对网址。脚本应该是运行的 python 函数,而不是文件名。所以你的 app.yaml 应该是。

    handlers:
    - url: /backend
      script: mybackend.myfunction
      login: admin
    

    您的后端和前端实例共享相同的处理程序,无法区分它们。

    【讨论】:

    • 但是引擎如何识别 url '/backend' 应该作为后端实例运行?
    • 如果您向mybackend.myapp.appspot.com/backend 发出请求,它将在后端实例上运行。如果您向myapp.appspot.com/backend 发出请求,它将在正常实例上运行并超时。这就是为什么您要设置 login:admin (您做得正确)。理论上,如果管理员知道自己在做什么,他们只会在myapp.appspot.com/backend 发出非后端请求。在您的 /backend 处理程序中,您可以检测您是否真的在后端并采取适当的行动。见后端APIcode.google.com/appengine/docs/python/backends/functions.html
    • 谢谢,现在很清楚了。在我在这里发布问题之前,我正确阅读了文档,但是即使现在我不得不说它是非直觉地写的(至少对我来说)。
    • 是的,我完全同意。我发现很难看到处理程序是如何分配给后端而不是前端的。 Dragonx 上面的评论现在更清楚了。谢谢!
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 2015-03-18
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2011-10-19
    • 2016-12-18
    相关资源
    最近更新 更多