gpt4 book ai didi

python - Google 应用程序引擎模块 :Confused about routing (dispatch. yaml)

转载 作者:行者123 更新时间:2023-12-01 05:11:35 24 4
gpt4 key购买 nike

[深入研究问题后,问题似乎不在于路由,而在于模块中端点的使用。新问题GAE Modules and Google Endpoints

我正在将 GAE 应用程序迁移到模块,但我对路由感到困惑,因为某些查询已正确路由,但并非全部。

我的根文件夹中有以下dispatch.yaml。请注意,该 api 模块正在使用 Google Cloud Enpoints API

application: testapp

dispatch:
- url: "*/foo/*"
module: foomodule
- url: "*/_ah/spi/*"
module: api
- url: "testapp.appspot.com/"
module: default

然后按模块名称创建一个文件夹,每个文件夹都有一个 yaml 文件,使用处理程序定义 URL 模式,例如/www/www.yaml 我的默认模块

application: testapp
version: alpha
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /static
static_dir: static
- url: /.*
script: www.app

libraries:
- name: webapp2
version: latest

诸如 http://testapp.appspot.com/xxx 之类的查询正确重定向到默认值,/foo/xxx 由 foomodule 处理,但 API 请求 (/_ah/spi/xxx) 将转到带有 404 的默认模块。

但是,我可以在映射到 api 模块的实例日志中看到/_ah/spi/BackendService.logMessages 的 200 OK。 这个来自 alpha-dot-api-dot -testapp.appspot.com - 而 404 仅来自 testapp.appspot.com。 (注意:我想让我的查询在 testapp.appspot.com 上运行)

我是不是做错了什么?另外,有没有办法列出服务器上当前使用的配置以确保其正确部署?

最佳答案

将端点 api 分解到单独的模块中并使用dispatch.yaml 来设置路由是很诱人的,但使用 dev_appserver.py 你似乎无法做到这一点。基于代码:https://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/tools/devappserver2/dispatcher.py?r=411#704

if (not path.startswith('/_ah/') or
any(path.startswith(wl) for wl
in DISPATCH_AH_URL_PATH_PREFIX_WHITELIST)):
return True
else:
logging.warning('Skipping dispatch.yaml rules because %s is not a '
'dispatchable path.', path)
return False

任何以 /_ah/ 开头的路径都不是可分派(dispatch)路径。

关于python - Google 应用程序引擎模块 :Confused about routing (dispatch. yaml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24122757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com