【问题标题】:Google App Engine routing with dispatch.yaml带有 dispatch.yaml 的 Google App Engine 路由
【发布时间】:2023-03-20 17:53:01
【问题描述】:

我尝试在我的沙盒 GCP 项目上部署一个 Web 应用程序,其中已经部署了一个应用程序。因此,我正在尝试使用同时部署两个 Web 应用程序的路径。

我的调度看起来像这样

dispatch:

- url: "*/wc/api/.*"
  service: wc-api

- url: "*/wc/.*"
  service: wc-front


- url: "*/.*"
  service: default

当我这样做时,我对 mysandbox.appspot.com/wc/ 的所有调用都会重定向到我的 default 服务,我不明白为什么(我可以在 default 服务的日志中看到这些调用)。

如果这有帮助,这里是我的wc-front 服务的app.yaml。

runtime: python27
api_version: 1
threadsafe: yes
service: wc-front

default_expiration: "10m"

handlers:
- url: /wc/.*
  script: app.APP
  login: required
  secure: always

你看到这里有什么错误吗?

(直接调用 wc-front-dot-mysandbox.appspot.com/wc/ 会返回典型的 App Engine 404 错误)

谢谢

【问题讨论】:

  • 我也面临同样的问题。我想将“/api/”路由到后端服务,将“/api/model/”路由到模型服务。我编写了 dispatch.yaml 来做到这一点,即使将模型服务路由保持在顶部,但仍然所有负载都将转到后端服务

标签: google-app-engine url-routing google-app-engine-python


【解决方案1】:

是的,确实,您需要配置 dispatch.yaml 文件,以便 App Engine 根据您在此处设置的 URL 路由您的应用程序。看来您的 service: default 正在获取所有 URL 并将它们重定向到那里设置的服务。

考虑到这一点,我建议您查看有关配置 dispatch.yaml 文件的官方文档 - 您可以获得关于如何配置它的一些更好的想法 - 以及来自社区的其他帖子,其中另一个用户有一个与您类似的用例,我认为应该对您有所帮助。

如果这些信息对您有帮助,请告诉我!

【讨论】:

  • 你好,我的调度在我的帖子里。有什么问题吗?谢谢
  • 嗨@ValentinCoudert 通过检查您的dispatch.yaml 文件,您在- url: "*/.*" service: default 上的逻辑似乎使每个具有/ 的调用都转到default 服务。您可以尝试删除或更改它吗?
【解决方案2】:

看来问题出在.* 符号上。这应该只用于非常通用的*/.* 规则。

我的新 - 工作 - 派遣

dispatch:

- url: "*/wc/api/*"
  service: wc-api

- url: "*/wc/*"
  service: wc-front


- url: "*/.*"
  service: default

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 2012-11-15
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 2017-11-17
    相关资源
    最近更新 更多