Google 云功能总是从 API 网关接收/

Google cloud function always receive / from API Gateway

让我们设置基础知识: 我正在使用 Google Api 具有不同后端的网关,例如 Google Cloud Function。

首先,我在包含原始请求 url 的 header 上使用 switch 语句解析 req 参数。 (非常凌乱但有效)

所以我决定使用 express 应用来代替我的云功能。

但事情是这样的:当我的路径是 时,我的函数总是从网关接收 / 并生成像 CANNOT GET / 这样的严重错误https:///mygateway/api/subservice/action

所以我的问题是:我可以更改 Express 应用程序的处理方式来解析包含原始请求 url 而不是默认路径 url 的 header 吗?

这是我的配置的一部分:

{
  "swagger": "2.0",
  "info": {
    "title": "my API",
    "version": "1.0.0"
  },
  "basePath": "/api",
  "host": "mygateway.[REGION].gateway.dev",
  "schemes": [
    "https"
  ],
  "paths": {
    "/subservice/action": {
      "get": {
        "x-google-backend": {
          "address": "https://[REGION]-[ProjectID].cloudfunctions.net/[mycloudfunction]"
        },
        "security": [
          {
            "jwt_security": []
          }
        ],

我在这个问题上发现了一些类似的东西,这些东西引导我搜索响应

根据Google's explanation of path translation当我们使用x-google-backend时,后端只会接收基本请求。我们必须使用参数 path_translation 来定义我们期望的行为。就我而言,我想接收相同的路径,所以我使用 APPEND_PATH_TO_ADDRESS