Azure API 管理后端可通过 2 个位置访问



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

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

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

知道我如何使此设置工作吗?

在多区域方案中,APIM 在两个区域中运行相同的配置。因此,对于像您这样的情况,您确实需要使用设置后端服务策略来有条件地覆盖后端服务器地址。因此,如果您的 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 服务器以提供正确的地址。

这里的问题是 VNET 需要对等互连。在我想通了这一点之后,一切都像广告上所说的那样工作。

最新更新