Azure 函数 - 将空字符串映射为函数的路由

问题描述

有没有办法将空字符串作为路由映射到 Azure 函数。就像我说当我点击 https://example.org/api (空字符串)时,函数将被点击。我试过如下,但没有奏效。

[FunctionName("Default")]
public static async Task<IActionResult> Run(
   [HttpTrigger(AuthorizationLevel.Function,"get","post",Route = "")] HttpRequest req,ILogger log)
{
       ...
}

解决方法

Customize the HTTP endpoint

默认情况下,所有函数路由都以 api 为前缀。您还可以使用 host.json 文件中的 extensions.http.routePrefix 属性自定义或删除前缀。以下示例通过对 host.json 文件中的前缀使用空字符串来删除 api 路由前缀。

# host.json

{
    "extensions": {
        "http": {
            "routePrefix": ""
        }
    }
}
,

事实证明没有直接的方法可以做到这一点。在运行 Functions 解决方案后,PFB 屏幕截图以及从控制台中选取的错误消息。 Functions route must be non-empty

不过可以使用Function proxy来实现。将以下 json 添加到您的 proxies.json。因此,这种方式可以说您正在点击“http://localhost:7071/api/”,它将登陆您指定的功能。

{
  "proxies": {
    "EmptyRouteProxy": {
      "matchCondition": {
        "route": "/"
      },"backendUri": "http://localhost:7071/api/SampleFunc"
    }
  }
}