我正在构建一个Azure函数应用程序,它通过Azure管理公开。在被API管理重定向之前,我们需要知道URL的路径。我们目前正在通过使用入站策略在标头中设置原始URL来做到这一点,如下所示:
<policies>
<inbound>
<base />
<set-backend-service id="apim-generated-policy" backend-id="myfunctionapp" />
<set-header name="x-original-url" exists-action="append">
<value>@(context.Request.OriginalUrl.Path.ToString())</value>
</set-header>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>在API管理中测试API时,我可以看到头部被正确设置,但是在我的函数应用程序的日志中,头值在重定向之后被用请求URL覆盖(即/api/终结点而不是/api-manager/终结点)。
我猜这个策略在转到函数应用程序之后会再次被执行,但是我似乎不知道为什么。有没有人有这样做的经验,或有一个更好的解决方案发送原始的URL到函数应用程序,以便它可以被记录?
发布于 2022-02-18 22:59:55
贾斯汀·马修有权这么做。将标题名称更改为其他内容解决了问题。管道中的其他东西一定是试图使用相同的标头值。
https://stackoverflow.com/questions/70872653
复制相似问题