繁体   English   中英

Azure 函数代理

[英]Azure Function Proxies

我有一个现有的代码库(我只是负责扩展和完善它 - 最初没有编写它,所以我有时有点茫然)来处理我们内部网系统中的 URL 操作。 它基于处理重定向的 Azure 函数 (C# / .NET Core 3.1)。

整个事情都取决于 Azure Function Proxies(是的 - 我知道 Azure Function v4 / .NET 6 已经发布了这些 - 但我现在还不能进行切换)。 基本上,每当有人输入如下网址时:

    https://example.com/some-value
    

调用 Azure Function(在 Azure Function Proxy 中定义为backendUri )。

这一切都很好 - 只要用户提供“一些值”条目。 但是,如果用户只输入以下内容:

    https://example.com/
    

然后看起来好像根本没有调用我的 Azure 函数。

所以我想做的是修改我的 Azure Function 代理定义,这样如果 URL https://example.com/被调用/输入,它会调用后端 URI,其{url}值为例如home (或者其他的东西)。

知道怎么做吗? 我似乎无法在 Azure Function 代理上找到大量信息和示例......

这是我当前的定义( proxies.json ):

{
  "$schema": "http://json.schemastore.org/proxies",
  "proxies": {
    "Domain Redirect": {
      "matchCondition": {
        "route": "/{url}"
      },
      "backendUri": "http://myfunctionapp.azurewebsites.net/api/resolve/{url}"
    },
    "Root": {
      "matchCondition": {
        "route": "/"
      },
      "responseOverrides": {
        "response.statusCode": "301",
        "response.statusReason": "Moved Permanently",
        "response.headers.location": "%defaultRedirectUrl%"
      }
    }
  }
}

所以基本上我想重定向:

https://example.com/some-value  ===>   http://myfunctionapp.azurewebsites.net/api/resolve/some-value
https://example.com/            ===>   http://myfunctionapp.azurewebsites.net/api/resolve/home

有什么办法可以在这个proxies.json中表达?

  • 附加在 url 末尾的参数定义了代理。 没有它,应用程序将无法区分代理。 将代理视为端点,以“/”结尾的任何内容都将直接转到 azure 函数应用程序默认 url。

  • 使用代理的唯一方法就像一个端点并与它们一起发送选项,以便它可以分叉。

这里最后只有“/”

在此处输入图像描述

它将转到函数应用程序的默认 url。

在此处输入图像描述

否则,如果您使用“ /test ”

在此处输入图像描述

它将给出 400 not found 这意味着它在其他地方分叉而不是默认 url。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM