如何在Azure APIM中动态更新后端/出站URL



我们将AIPM与AKS一起使用。我正在尝试根据可用性动态重定向目标URL。例如,我有几个后端url配置了负载均衡器。当我达到负载均衡器时,我想根据可用性转到端点1或端点2

我正在尝试做一些类似于HA代理中提到的事情https://www.haproxy.com/blog/failover-and-worst-case-management-with-haproxy/.由于我们已经使用了APIM,我认为只有HA代理才能实现这一点是过分的,除非该功能不可用。虽然我可以理解我们可以重写URL或动态设置后端,但我不确定APIM是否可以决定URL是否启动,如果不启动,它可以回退到配置中提到的其他URL——上面链接中提供的内容。

我目前的理解是,我可以使用该策略,如果出现错误,我可以在可以重定向的地方使用错误策略。但这是针对一种情况。任何建议或建议都会有所帮助。

您可以对来自后端API的响应代码做出反应,并设置新的后端url。这可能并不完美,但它会让你开始。在这个例子中,我假设你从你的后端得到一个CCD_;向下":

<backend>
<retry condition="@(context.Response.StatusCode == 500)" count="2" interval="1" first-fast-retry="true">
<choose>
<when condition="@(context.Response != null && context.Response.StatusCode == 500)">
<set-backend-service base-url="https://my-other-service.azurewebsites.net" />
</when>
<otherwise />
</choose>
<forward-request />
</retry>
</backend>

最新更新