Azure functions Azure函数仅使用PUT方法获取401错误

Azure functions Azure函数仅使用PUT方法获取401错误,azure-functions,swagger,azure-api-management,bearer-token,Azure Functions,Swagger,Azure Api Management,Bearer Token,我最近开始在许多Azure HTTP函数上出现401个未经授权的错误,但仅使用HTTP PUT方法。这些函数是通过Azure API管理(APIM)使用Swagger 3开放API提供的,我们有一个使用函数过滤器的自定义中间件,它为我们提供了一个类似于[Authorize]的属性来验证我们的承载令牌 在主机文件中,我们删除了/api/路由前缀 { ... "extensions": { "http": { "route

我最近开始在许多Azure HTTP函数上出现
401个未经授权的
错误,但仅使用HTTP PUT方法。这些函数是通过Azure API管理(APIM)使用Swagger 3开放API提供的,我们有一个使用函数过滤器的自定义中间件,它为我们提供了一个类似于
[Authorize]
的属性来验证我们的承载令牌

在主机文件中,我们删除了
/api/
路由前缀

{
  ...
  "extensions": {
    "http": {
      "routePrefix": ""
    }
  }
}   
因此,我们的API是简单的路由,比如GET/PUT
/preferences
。所有其他API都工作正常,它们在APIM上进行验证,并传递到后端API,在后端API中验证承载令牌并成功执行函数。但是,所有HTTP PUT函数永远不会到达我们的后端,因为它们似乎被函数主机截获,并且返回一个HTTP 401,其中包含以下标头,
WWW Authenticate:Bearer error=“invalid\u token”,error\u description=“未找到签名密钥”

有趣的是,如果我们将路由更改为更复杂的路由,例如
/preference/something
,那么它可以工作(耸耸肩),并且我在日志中通过附加日志验证了这些PUT方法永远不会到达我们的任何代码

如果微软能提供一些关于为什么会发生这种情况的指导,那将是非常好的,或者如果其他任何人都经历过这种奇怪的现象,那么我很想听听你们的经验和可能的解决方案