我在Azure中有一个API管理(高级)设置,该设置连接到西欧的虚拟网络,该虚拟网络包含提供API的Docker Machines,这些API可以通过IP地址在10.0.0 / 16范围内访问。
为了使我的设置高度可用,我在北欧添加了一个虚拟网络,其虚拟设置与西欧完全相同,但IP范围现在为11.0.0.0/16。
现在,当我扩展API管理以添加另一个区域时,我的API将不再可用。我尝试使用set-backend-service命令仅指向一个区域,但似乎无法再访问后端。从门户网站进行跟踪时收到的消息是“无法连接到远程服务器”。在我看来,当添加另一个位置时,API管理不知道如何路由到不同的虚拟网络。
有什么想法可以使该设置正常工作吗?
答案 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。在我弄清楚这一点之后,一切都按广告宣传进行了。