首页 > 解决方案 > 我可以在 Azure API 管理上调用不同的后端吗

问题描述

我试图实现这一点,当我根据请求标头调用 APIM 端点时,它应该是不同的端点。例如,当用户调用https://test.azure-api.net/testsvc-dev/api/test APIM 应该能够将请求发送到 https://testappv1:80/test 或 https://testappv2:80 . 现在我可以在 serviceURL 中看到,我只能添加一个。是否有任何政策可用于执行此类操作。

更多上下文:我试图在一次调用中访问两个不同版本的 API。我试图让 APIM 根据用户来决定,而不是调用者选择调用哪一个。

标签: azureazure-aksazure-api-managementblue-green-deployment

解决方案


您可能正在寻找该政策。这是 Microsoft 文档中的一个示例,它根据查询参数更改后端服务:set-backend-service

<policies>
    <inbound>
        <choose>
            <when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2013-05")">
                <set-backend-service base-url="http://contoso.com/api/8.2/" />
            </when>
            <when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2014-03")">
                <set-backend-service base-url="http://contoso.com/api/9.1/" />
            </when>
        </choose>
        <base />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

当然,您可以采用示例并查询所需的标题;-)


推荐阅读