代码之家  ›  专栏  ›  技术社区  ›  Aleks G

Azure函数-将所有请求发送到同一函数

  •  1
  • Aleks G  · 技术社区  · 7 年前

    我正在尝试设置Azure函数,以便将所有请求发送到同一个函数。这个 proxies.json 文件非常简单:

    {
      "$schema": "http://json.schemastore.org/proxies",
      "proxies": {
        "Root URI to Redirector Trigger Function": {
          "matchCondition": {
            "route": "/{*path}",
            "methods": [
              "GET",
              "POST"
            ]
          },
          "backendUri": "http://%WEBSITE_HOSTNAME%/myfunc"
        }
      }
    }
    

    到目前为止还不错,但是当发送一个请求时,被代理的请求会再次被代理处理——以一个无限循环结束。

    如何在我的代理中指定代理所有请求接受这些请求 /myfunc 资源?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Nick    7 年前

    您的配置强制重定向应用于域中的所有内容。当发生重定向时, /myfunc 也会重新定向。

    你可以: 1。将代理的路由更改为不同的路径,例如`/api/*path'。 2。将您的函数移动到其他域。

        2
  •  1
  •   Aleks G    7 年前

    我终于解决了这个问题,虽然不是很优雅。我的 proxies.json 现在看起来像这样:

    {
      "$schema": "http://json.schemastore.org/proxies",
      "proxies": {
        "Root URI to Redirector Trigger Function": {
          "matchCondition": {
            "route": "/{path}",
            "methods": [
              "GET",
              "POST"
            ]
          },
          "backendUri": "http://%WEBSITE_HOSTNAME%/"
        }
      }
    }
    

    我也编辑了我的 function.json 有`“route”:“/”。现在,除了根以外的所有调用都被代理到我的函数。对route的调用最终直接转到函数(需要单独处理)。

    推荐文章