Служба приложения Linux: VNET интеграция приводит к тому, что приложение и docker вообще не отвечают - PullRequest
0 голосов
/ 25 февраля 2020

Я знаю, что интеграция VNET все еще находится в Preview, однако я надеюсь, что кто-то все еще может помочь мне с нашей текущей проблемой. У моего арендатора-разработчика есть служба приложений linux с VNET, интегрированная для доступа к учетной записи хранения (v2) за VNET. Приложение веб-службы базируется на python и использует gunicorn / flask для запросов http и пакет azure .storage.blob для взаимодействия с учетной записью хранилища.

Все это хорошо работает на этом клиенте однако теперь мы пытаемся получить одно и то же решение, работающее на другом клиенте, и это вызывает проблемы. Мы используем функцию интеграции VNET, которая находится в режиме предварительного просмотра, конечные точки также настроены (Microsoft.Storage и Microsoft.Web), однако, когда мы запускаем службу приложений после интеграции, мы не получаем никакого ответа, также не ведется регистрация docker. доступно, поток регистрации не реагирует. В арендаторе разработчика мы получили немедленный ответ.

Также не имеет значения, как долго вы ждете интеграции VNET (это можно увидеть как уведомление). При попытке отключить интеграцию VNET также возникает ошибка:

"VNet невозможно удалить из веб-приложения: шлюз не получил ответ от Microsoft.Web в течение указанного времени period. "

Интересно, что после этого интеграция VNET больше не видна, и когда мы снова запускаем службу приложений, все снова работает. Мы также попытались использовать пустую виртуальную сеть с включенной только интеграцией службы приложений, что вызывает те же проблемы. Как программное обеспечение, так и конфигурации абсолютно одинаковы, также мы используем Западную Европу для всех ресурсов.

Кто-нибудь знает, где мы могли бы искать дальнейшие меры для выявления этой проблемы? Или потому, что он все еще находится в режиме предварительного просмотра и в зависимости от местоположения может или не может работать ...

С уважением, Джос Эйлерс

1 Ответ

0 голосов
/ 29 февраля 2020

Насколько я знаю, для интеграции службы приложений с VNet вам нужно только включить конечную точку службы Microsoft.Storage вместо Microsoft.Storage и Microsoft.Web. Пользовательский интерфейс VNet Integration делегирует su bnet на Microsoft.Web автоматически.

Для регионального VNet устранения неполадок интеграции вы можете проверить следующее:

  • Ваш пункт назначения не является адресом RFC1918, и для вас не установлено значение WEBSITE_VNET_ROUTE_ALL, равное 1
  • . Существует ли выход блокировки NSG из вашей интеграции su bnet
  • do у вас достаточно прав для установки делегирования на интеграцию su bnet? Во время региональной конфигурации интеграции VNet ваша интеграция su bnet будет делегирована Microsoft.Web. Интерфейс интеграции VNet автоматически делегирует su bnet Microsoft.Web. Если ваша учетная запись не имеет достаточных сетевых разрешений для настройки делегирования, вам потребуется кто-то, кто может установить атрибуты вашей интеграции su bnet для делегирования su bnet. Чтобы вручную делегировать интеграцию su bnet, go пользовательскому интерфейсу Azure Virtual Network su bnet и установить делегирование для Microsoft.Web.

Более того, если вы используете Веб-приложение для контейнеров , вам нужно изменить изображение Docker, чтобы использовать интеграцию VNet. В образе docker используйте переменную окружения PORT в качестве порта прослушивания основного веб-сервера вместо использования номера порта в жестком коде. Переменная среды PORT автоматически устанавливается платформой службы приложений во время запуска контейнера. Прочитайте это example1 и example2 .

Кроме того, существует шаблон ARM для развертывания службы приложений VNet конечная точка службы интеграции и хранения для вашей справки. Иногда порядок развертывания является проблемой.

...