2个位置无法访问Azure API管理后端

时间:2019-01-02 11:58:23

标签: azure-api-management

我在Azure中有一个API管理(高级)设置,该设置连接到西欧的虚拟网络,该虚拟网络包含提供API的Docker Machines,这些API可以通过IP地址在10.0.0 / 16范围内访问。

为了使我的设置高度可用,我在北欧添加了一个虚拟网络,其虚拟设置与西欧完全相同,但IP范围现在为11.0.0.0/16。

现在,当我扩展API管理以添加另一个区域时,我的API将不再可用。我尝试使用set-backend-service命令仅指向一个区域,但似乎无法再访问后端。从门户网站进行跟踪时收到的消息是“无法连接到远程服务器”。在我看来,当添加另一个位置时,API管理不知道如何路由到不同的虚拟网络。

有什么想法可以使该设置正常工作吗?

2 个答案:

答案 0 :(得分:0)

在多区域方案中,APIM在两个区域中运行相同的配置。因此,对于像您这样的情况,您确实需要使用set-backend-service策略来有条件地覆盖后端服务器地址。因此,如果您的API目前设置为10.0.X.X,则需要添加类似于以下内容的策略:

<choose>
    <when condition="@(context.Request.Deployment.Region == "North Europe">
        <set-backend-service url="http://11.0.Y.Y" />
    </when>
</choose>

那是假定您通过IP地址来寻址后端。如果使用DNS寻址,则需要在VNET中配置DNS服务器以提供正确的地址。

答案 1 :(得分:0)

这里的问题是需要对等VNET。在我弄清楚这一点之后,一切都按广告宣传进行了。