Диспетчер трафика Azure для переключения на другую службу управления API

Поэтому я работаю над созданием сценариев для развертывания ресурсов Azure с использованием модулей Az в PowerShell. Я новичок в Azure Traffic Manager, поэтому мне интересно, возможно ли то, что мы хотим сделать, и если да, то как.

У нас есть служба управления API (APIMS) с несколькими API, которые указывают на несколько различных веб-приложений в Azure. Таким образом, в настоящее время это работает так: у нас есть клиентское приложение, которое будет отправлять сообщения в конкретную операцию API через свой URL-адрес APIMS.

Мы рассматриваем идею использования диспетчера трафика исключительно для перемещения трафика от одного APIMS к другому в случае, если нам нужно создать новый APIMS. Я могу добавить существующий APIMS в качестве конечной точки к диспетчеру трафика в качестве внешней конечной точки, используя его общедоступный IP-адрес. Но помимо этого, вот в чем я не уверен:

  • Как именно трафик будет фактически маршрутизироваться через диспетчер трафика через APIMS на конкретный пост API? (например, что клиентскому приложению необходимо указать в качестве места отправки сообщения?). Или это вообще сработает ??
  • Если мы создадим новый APIMS, можем ли мы просто добавить его в качестве новой конечной точки к диспетчеру трафика (опять же, как внешнюю конечную точку через его IP-адрес), а затем удалить старую конечную точку APIMS?

Я нашел этот похожий вопрос, но ответ использует Add-AzureTrafficManagerEndpoint, а не New-AzTrafficManagerEndpoint, который я использую и, по-видимому, не поддерживает -DomainName в качестве параметра.


person Andy    schedule 17.12.2019    source источник


Ответы (1)


Диспетчер трафика не маршрутизирует трафик, а только разрешает доменное имя. Для этого вы можете использовать ТМ. Для своего личного домена в диспетчере трафика (например, contoso.com) вы можете добавить запись CNAME, указывающую на contoso.azure-api.net (предпочтительно использовать CNAME вместо A, и IP-адрес службы APIM может измениться в определенных сценариях). И добавьте сертификат SSL в APIM для contoso.com. Что произойдет в этой настройке:

  1. Клиент хочет отправить запрос к https://contoso.com/myapi
  2. Клиент выполнит поиск в DNS для contoso.com и увидит запись CNAME, указывающую на contoso.azure-api.net.
  3. Клиент выполнит поиск в DNS для contoso.azure-api.net и увидит IP-адрес APIM.
  4. Клиент попытается открыть SSL-соединение с APIM
  5. APIM, имеющий доступный сертификат SSL, примет соединение
  6. Клиент отправит запрос.

Все это не требует от вашего клиента какой-либо специальной настройки, кроме настройки использования contoso.com в качестве имени хоста для вашего API. Позже, если вы захотите переключиться на другую службу APIM, вы сможете обновить TM. Клиент не потребует никаких изменений.

Единственное, что нужно знать, это то, что эта конкретная установка не требует TM как такового. Поскольку все, что вам действительно нужно, это собственный домен от любого поставщика DNS, потому что все, что вам нужно сделать для переключения трафика с одного APIM на другой, - это обновить запись CNAME.

person Vitaliy Kurokhtin    schedule 17.12.2019