如何(从客户端)识别哪个 Azure API 管理后端主机提供了响应?

问题描述 投票:0回答:1

这是场景:

        |-> Backend #1 (Function App)
APIM->  |-> Backend #3 (Function App)
        |-> Backend #n (Function App)

我目前正在构建一个部署管道,它将:

  1. 让 Terraform 将我们的 API 操作部署到 Azure API 管理并配置其相应的产品、各自的订阅密钥和设置后端策略
  2. 之后,运行 funcapp 发布 CLIAzure Function Core Tools)来部署 Function App 代码,因为它们是实际的后端
  3. 使用特定产品的订阅密钥,通过向 API 端点发出curl 请求来确认已部署的后端可运行
到目前为止一切正常。目前我遇到的唯一问题是关于上面的

步骤#3:如何确保我得到的 API 响应确实来自最近部署的后端(因为有很多)?

API 管理策略是否有办法检索后端主机名(

Host

 标头?)并以某种方式将其公开给客户端?

或者也许有其他更聪明、更安全的方法来做到这一点?

azure azure-api-management apim
1个回答
0
投票
将以下代码添加到响应的 API 管理服务策略配置“Backend-URL”标头的

<outbound>

<on-error>
 
sections

<set-header name="Backend-URL" exists-action="override"> <value>@(context.Request.Url.ToString())</value> </set-header>
可以在此答案中找到包含测试结果的屏幕截图:

https://stackoverflow.com/a/78391259/624368

© www.soinside.com 2019 - 2024. All rights reserved.