【问题标题】:Azure API Management backend not reachable with 2 locations无法通过 2 个位置访问 Azure API 管理后端
【发布时间】:2019-01-02 11:58:23
【问题描述】:

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

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

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

知道如何进行此设置吗?

【问题讨论】:

    标签: azure-api-management


    【解决方案1】:

    在多区域方案中,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 服务器以提供正确的地址。

    【讨论】:

      【解决方案2】:

      这里的问题是需要对 VNET 进行对等互连。在我弄清楚这一点后,一切都像宣传的那样工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-08
        • 2014-10-16
        • 2021-08-09
        • 2018-12-27
        • 1970-01-01
        • 2014-11-22
        • 1970-01-01
        相关资源
        最近更新 更多