Firebase 托管:是否可以重写 URL 并将部分路径传递给 Cloud Run?

Pab*_*ote 4 firebase firebase-hosting google-cloud-run

我想在 Cloud Run 上使用 Firebase Hosting 前缀的 API /api。以便/api/somethingAPI/something处理程序处理传入请求。看起来很简单,但我无法弄清楚,所以我想知道 Firebase 托管是否可以实现。

我尝试的第一件事是:

"rewrites": [
      {
        "source": "/api",
        "run": {
          "serviceId": "my-api",
          "region": "us-central1"
        }
      }
    ]
Run Code Online (Sandbox Code Playgroud)

这会正确地/api将请求路由到服务 root /,但/api/something仅调用 404。

第二次尝试是使用"source": "/api/**"or "regex": "/api(/.*)?",。这可以正确接收类似的请求/api/something,但将其路由到 API 根/而不是/something.

理想情况下,我希望它去掉/api前缀,或者允许我在路由 URL 上使用提取的正则表达式组。谢谢。

Dou*_*son 5

理想情况下,我希望它去掉 /api 前缀,或者允许我在路由 URL 上使用提取的正则表达式组。

那是不可能的。请求的完整 URI 将始终保留并转发到 Cloud Run。Cloud Run 端的代码应该能够处理发送到 Firebase Hosting 的完整路径。如果您想删除任何路径前缀,则必须将其包含在部署到 Cloud Run 的代码中。