Бэкэнд управления API Azure недоступен в двух местах - PullRequest
0 голосов
/ 02 января 2019

У меня есть настройка API Management (Premium) в Azure, которая подключена к виртуальной сети в Западной Европе, которая содержит Docker Machines, которая обслуживает API, API доступны через IP-адрес в диапазоне 10.0.0 / 16.

Чтобы сделать мои настройки более доступными, я добавил виртуальную сеть в Северной Европе с точно такой же настройкой, что и в Западной Европе, за исключением диапазона IP-адресов, который теперь составляет 11.0.0.0/16.

Теперь, когда я масштабирую Управление API, чтобы добавить другой регион, мои API больше не доступны. Я попробовал команду set-backend-service указать только на один регион, но больше не могу получить доступ к бэкэндам. Сообщение, которое я получаю при выполнении трассировки с портала: «Невозможно подключиться к удаленному серверу». Мне кажется, что при добавлении другого местоположения управление API не знает, как маршрутизировать в разные виртуальные сети.

Есть идеи, как я могу заставить эту установку работать?

1 Ответ

0 голосов
/ 03 января 2019

В мультирегиональном сценарии 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, вам необходимо настроить DNS-сервер в VNET для предоставления правильных адресов.

...