Мы строим нашу инфраструктуру с использованием терраформ. Короче говоря, архитектура WebApp, VNet (с 3 подсетями), кэш Redis и AppGW. Планируется, что Redis уровня Premium будет интегрирован с VNet, WebApp связан с другим su bnet и недоступен из inte rnet и AppGW для предоставления доступа ко всему.
К сожалению, есть нет способа связать WebApp с su bnet от terraform, поэтому мы используем этот
az webapp vnet-integration add -g "My-RG" -n "My-App" --vnet "My-VNET" --subnet "My-Subnet"
Поскольку он меняет vnet, перед каждым повторным развертыванием инфраструктуры мне приходилось добавлять
az webapp vnet-integration remove -g "My-RG" -n "My-App"
Так что прыгайте назад и вперед.
В чем проблема c, так это то, что эти команды cli все еще находятся в режиме предварительного просмотра и часто выходят из строя. Мы столкнулись с проблемой, что после удаления интеграции остались некоторые ссылки, и мы не можем удалить / воссоздать su bnet без поддержки MS; иногда вы не можете назначить интеграцию vnet, потому что ресурс используется; каждая секунда повторного развертывания (если не чаще!) интеграции, казалось бы, добавлялась, но приложение все равно не может подключиться к redis. Чтобы решить эту проблему, мне нужно от go до azure портала, вручную отключить VNET от веб-приложения и подключить его обратно.
Таким образом, по сути, это перечеркивает всю автоматизацию.
Есть ли способ надежно добавить интеграцию VNet в веб-приложение из консоли / azure конвейер devops? Может быть, PowerShell немного лучше (я не видел команды для этого)