#botframework #azure-bot-service #azure-load-balancer
#botframework #azure-бот-сервис #azure-балансировщик нагрузки
Вопрос:
Я настраиваю среду службы MS Bot Framework в Azure. Мне удалось успешно настроить канал, который подключается к одной службе ботов для одного приложения. Теперь мы хотели бы масштабировать эту среду глобально (по всему миру), и мы хотели бы настроить среды с несколькими регионами. Когда пользователь подключается из приложения channel (MS Team), он должен иметь возможность подключиться к своему ближайшему региону Azure и получить ответ обратно. Как мы можем настроить балансировщик географической нагрузки для службы ботов веб-приложений Microsoft bot Framework?
Мы попытались настроить диспетчер трафика, однако у нас есть ограничение, поскольку служба регистрации канала Microsoft bot имеет идентификатор приложения Microsoft (ClientID) и пароль, и она может подключаться только к одному URL-адресу конечной точки обмена сообщениями
Фактические результаты: приложение для регистрации канала Microsoft Bot не может подключиться к нескольким конечным точкам обмена сообщениями в разных регионах и как мы можем сбалансировать нагрузку на службу MS Bot.
Ожидаемые результаты: Как мы можем сбалансировать загрузку (задержка по регионам) приложения MS Bot?
Ответ №1:
Кроме того, боты Azure обычно запускаются как службы приложений Azure. Служба приложений Azure обладает встроенными возможностями масштабирования. В зависимости от уровня цен, который вы выбираете для службы приложений, вы можете масштабировать до 20 экземпляров. Вы можете перейти к 100 экземплярам, если вы находитесь на «изолированном» уровне. Вы также можете увеличить масштаб, добавив память и процессор. Это действительно мощные ресурсы, на которые вы можете его использовать.
Я понимаю, что вы пытаетесь уменьшить задержку, но сначала я хотел бы указать на функцию масштабирования. У вас есть еще одна проблема, которую я не думаю, что возможно преодолеть на данный момент.
Если MS Teams — единственный канал, который будут использовать ваши пользователи, то попытки управлять трафиком самостоятельно, вероятно, будут неэффективными. Ваше ограничение будет заключаться в том, где находится служба MS Teams. Команды — это то, что разговаривает с вашим ботом, а не с пользователем напрямую.
Путь примерно такой: Пользователь -> MS Teams -> Служба ботов Azure -> Служба приложений Azure.
Поскольку у вас нет контроля над подключением Teams к Bot, вы не можете управлять трафиком.
Вы могли бы развернуть несколько ботов в разных регионах, а затем поручить своим пользователям подключаться к соответствующему региональному каналу ботов в Teams. Это не автоматическое управление трафиком, но, по крайней мере, обеспечит некоторую региональную поддержку, которую вы ищете.
Комментарии:
1. Спасибо за ваш ответ Ed. Я настроил диспетчер трафика на метод маршрутизации = производительность и конечные точки службы приложений в разных регионах, и я могу подключиться к боту с помощью Directline / WebChat. Теперь я меняю URL конечной точки бота веб-приложения на URL диспетчера трафика, но я не могу подключиться через ms team. Я также добавил доменное имя traffic manager к допустимым доменам приложения ms team.