Руководство. Подключение веб-приложения Служба приложений s к База данных Azure для MySQL — гибкий сервер в виртуальной сети
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для MySQL — гибкий сервер
В этом руководстве показано, как создать и подключить веб-приложение службы приложение Azure к экземпляру гибкого сервера База данных Azure для MySQL, изолированному внутри одной или разных виртуальных сетей.
Из этого учебного курса вы узнаете следующее:
- Создание экземпляра гибкого сервера База данных Azure для MySQL в виртуальной сети
- Создание подсети для делегирования в Службу приложений и создание веб-приложения
- Добавление веб-приложения в виртуальную сеть
- Подключение к гибкому серверу База данных Azure для MySQL из веб-приложения
- Подключение веб-приложения и База данных Azure для MySQL гибкого экземпляра сервера, изолированного в разных виртуальных сетями
Необходимые компоненты
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу. В настоящее время с бесплатной учетной записью Azure можно попробовать База данных Azure для MySQL — гибкий сервер бесплатно в течение 12 месяцев. Дополнительные сведения см. в разделе База данных Azure для MySQL — гибкий сервер бесплатно.
Для этой статьи требуется запустить локально Azure CLI версии 2.0 или более поздней. Чтобы узнать, какая установлена версия, выполните команду az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
Вам потребуется выполнить вход в учетную запись с помощью команды az login. Запишите свойство id из выходных данных команды для соответствующего имени подписки.
az login
Если вы используете несколько подписок, выберите соответствующую, в которой за ресурс будет взиматься плата. Выберите конкретный идентификатор подписки вашей учетной записи, выполнив команду az account set. Подставьте свойство subscription ID из выходных данных az login для своей подписки в заполнитель для идентификатора подписки.
az account set --subscription <subscription ID>
Создание экземпляра гибкого сервера База данных Azure для MySQL
Создайте частный экземпляр гибкого сервера База данных Azure для MySQL в виртуальной сети с помощью следующей команды:
az mysql flexible-server create --resource-group myresourcegroup --location westus2 --vnet VNETName
Скопируйте строку подключения и имя только что созданной виртуальной сети. С помощью этой команды выполняются следующие действия (может занять несколько минут):
- Создается группа ресурсов, если она еще не существует.
- Создается имя сервера, если оно не предоставлено.
- Создайте виртуальную сеть
VNETName
для нового экземпляра гибкого сервера База данных Azure для MySQL и подсети в этой виртуальной сети для экземпляра гибкого сервера База данных Azure для MySQL. Убедитесь, что вы задали уникальное имя. - Создает имя пользователя и пароль администратора для этого сервера, если они не предоставлены.
- Создает пустую базу данных с именем flexibleserverdb.
Примечание.
Запишите пароль, созданный для вас, если он не указан. Если вы забыли пароль, необходимо сбросить пароль с помощью az mysql flexible-server update
команды.
Создание подсети для конечной точки Службы приложений
Теперь вам нужна подсеть, делегированная конечной точке веб-приложения Служба приложений. Выполните следующую команду, чтобы создать новую подсеть в той же виртуальной сети, что и созданный экземпляр гибкого сервера База данных Azure для MySQL.
az network vnet subnet create -g myresourcegroup --vnet-name VNETName --name webappsubnetName --address-prefixes 10.0.1.0/24 --delegations Microsoft.Web/serverFarms --service-endpoints Microsoft.Web
После выполнения этой команды запишите имя виртуальной сети и имя подсети. Они понадобятся, чтобы добавить правило интеграции с виртуальной сетью для веб-приложения после его создания.
Создание веб-приложения.
В этом разделе описано, как создать узел приложения в приложении Служба приложений и подключить это приложение к базе данных гибкого сервера База данных Azure для MySQL. Убедитесь, что в окне терминала вы находитесь в корне репозитория с кодом вашего приложения.
Создайте приложение Служба приложений (хост-процесс) с помощью команды az webapp up.
az webapp up --resource-group myresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp
Примечание.
- Для аргумента --location укажите то же расположение, что и для базы данных в предыдущем разделе.
- Замените <app-name> уникальным именем в Azure (конечная точка сервера —
https://\<app-name>.azurewebsites.net
). В значении <app-name> допускаются символы A-Z, 0–9 и «-». Рекомендуется использовать сочетание названия компании и идентификатора приложения. - Уровень "Базовый" службы приложений не поддерживает интеграцию с виртуальной сетью. Используйте уровень "Стандартный" или "Премиум".
С помощью этой команды выполняются следующие действия (может занять несколько минут):
- Создается группа ресурсов, если она еще не существует. (В этой команде используется та же группа ресурсов, в которой ранее была создана база данных.)
- Будет создан план службы приложений
testappserviceplan
с ценовой категорией "Базовый" (B1), если он еще не существует. Аргументы --plan и --sku необязательны. - Создается приложение Службы приложений, если оно еще не существует.
- Для приложения включается ведение журнала по умолчанию, если оно еще не включено.
- Передается репозиторий через развертывание на основе ZIP-файла с включенной автоматизацией сборки.
Добавление веб-приложения в виртуальную сеть
Используйте команду az webapp vnet-integration, чтобы добавить в веб-приложение региональную интеграцию с виртуальной сетью. Замените <имя виртуальной сети> и <подсеть именем виртуальной сети и подсети, которые использует экземпляр гибкого сервера База данных Azure для MySQL.
az webapp vnet-integration add -g myresourcegroup -n mywebapp --vnet VNETName --subnet webappsubnetName
Настройка переменных среды для подключения к базе данных
Теперь с помощью кода, развернутого в Служба приложений, необходимо подключить приложение к экземпляру гибкого сервера База данных Azure для MySQL в Azure. Код приложения должен находить сведения о базе данных в переменных среды. Чтобы задать переменные среды в Служба приложений, создайте "параметры приложения" с az webapp config appsettings set
помощью команды.
az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
- Замените <mysql-server-name,< имя> пользователя> и< пароль> для только что созданной команды База данных Azure для MySQL гибкого сервера.
- Замените <username> и <password> учетными данными, которые также созданы командой.
- Имена группы ресурсов и приложения извлекаются из кэшированных значений в файле .azure/config.
- Команда создает параметры с именами DBHOST, DBNAME, DBUSER и DBPASS. Если в коде приложения для сведений о базе данных используется другое имя, укажите здесь имена параметров приложения, которые используются в коде.
Настройте веб-приложение так, чтобы разрешить все исходящие подключения из виртуальной сети.
az webapp config set --name mywebapp --resource-group myresourcesourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'
веб-приложение Служба приложений и экземпляр гибкого сервера База данных Azure для MySQL в разных виртуальных сетях
Если вы создали приложение Служба приложений и экземпляр гибкого сервера База данных Azure для MySQL в разных виртуальных сетях, вам потребуется выполнить следующие два действия, чтобы установить простое подключение:
- Подключите две виртуальные сети с помощью пиринга виртуальных сетей (локального или глобального). См. руководство Установка пирингового подключения между виртуальными сетями.
- Связывание База данных Azure для MySQL зоны Частная зона DNS экземпляра гибкого сервера с виртуальной сетью веб-приложения с помощью ссылок виртуальной сети. Если вы используете портал Azure или Azure CLI для создания База данных Azure для MySQL экземпляров гибкого сервера в виртуальной сети, новая частная зона DNS автоматически подготавливается в подписке с помощью предоставленного имени сервера. Перейдите к частной зоне DNS экземпляра База данных Azure для MySQL гибкого сервера и следуйте инструкциям по связыванию частной зоны DNS с руководством по виртуальной сети для настройки канала виртуальной сети.
Очистка ресурсов
Очистите все ресурсы, созданные при работе с этим учебником, с помощью приведенной ниже команды. Эта команда позволяет удалить все ресурсы в группе ресурсов.
az group delete -n myresourcegroup