Руководство: подключение веб-приложения App Service к База данных Azure для MySQL — Flexible Server в виртуальной сети

В этом руководстве показано, как создать и подключить веб-приложение службы приложение Azure к экземпляру гибкого сервера База данных Azure для MySQL, изолированному внутри одной или разных виртуальных сетей.

Из этого учебного курса вы узнаете следующее:

  • Создание экземпляра гибкого сервера База данных Azure для MySQL в виртуальной сети
  • Создание подсети для делегирования в Службу приложений и создание веб-приложения
  • Добавление веб-приложения в виртуальную сеть
  • Подключение к гибкому серверу База данных Azure для MySQL из веб-приложения
  • Подключите веб-приложение и экземпляр База данных Azure для MySQL — Flexible Server, изолированные в разных виртуальных сетях

Предварительные требования

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу. В настоящее время с бесплатной учетной записью Azure можно попробовать База данных Azure для MySQL — гибкий сервер бесплатно в течение 12 месяцев. Дополнительные сведения см. в статье "Использование бесплатной учетной записи Azure", чтобы бесплатно попробовать База данных Azure для MySQL — гибкий сервер.

Для этой статьи требуется запустить локально Azure CLI версии 2.0 или более поздней. Чтобы узнать, какая установлена версия, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Вам потребуется выполнить вход в учетную запись с помощью команды az login. Запишите свойство id из выходных данных команды для соответствующего имени подписки.

az login

Если вы используете несколько подписок, выберите соответствующую, в которой за ресурс будет взиматься плата. Выберите идентификатор нужной подписки в своей учетной записи с помощью команды az account set. Подставьте свойство идентификатор подписки из выходных данных 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 команды.

Создание подсети для конечной точки Службы приложений

Теперь вам нужна подсеть, делегированная конечной точке веб-приложения App Service. Выполните следующую команду, чтобы создать новую подсеть в той же виртуальной сети, что и созданный экземпляр гибкого сервера База данных 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

После выполнения этой команды запишите имя виртуальной сети и имя подсети. Они понадобятся, чтобы добавить правило интеграции с виртуальной сетью для веб-приложения после его создания.

Создание веб-приложения.

В этом разделе вы создадите размещение приложения в приложении App Service и подключите это приложение к базе данных База данных Azure для MySQL Flexible Server. Убедитесь, что в окне терминала вы находитесь в корне репозитория с кодом вашего приложения.

Создайте приложение Служба приложений (хост-процесс) с помощью команды 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, чтобы добавить в веб-приложение региональную интеграцию с виртуальной сетью. Замените <vnet-name> и <subnet-name на имя виртуальной сети и имя подсети, которые использует экземпляр База данных Azure для MySQL — Flexible Server.

az webapp vnet-integration add -g myresourcegroup -n  mywebapp --vnet VNETName --subnet webappsubnetName

Настройка переменных среды для подключения к базе данных

Теперь, когда код развернут в Службе приложений, следующим шагом будет подключение приложения к экземпляру База данных Azure для MySQL Flexible Server в 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}'

веб-приложение App Service и экземпляр База данных Azure для MySQL Flexible Server в разных виртуальных сетях

Если вы создали приложение App Service и экземпляр База данных Azure для MySQL Flexible Server в разных виртуальных сетях (VNet), вам потребуется выполнить следующие два шага, чтобы установить бесперебойное подключение:

  • Подключите две виртуальные сети с помощью пиринга виртуальных сетей (локального или глобального). См. руководство Соединение виртуальных сетей с помощью пиринга виртуальных сетей.
  • Свяжите частную DNS-зону экземпляра База данных Azure для MySQL Flexible Server с виртуальной сетью веб-приложения с помощью ссылок виртуальной сети. Если вы используете портал Azure или Azure CLI для создания экземпляров База данных Azure для MySQL Flexible Server в виртуальной сети (VNet), в вашей подписке автоматически создаётся новая приватная зона DNS с использованием указанного имени сервера. Перейдите к частной зоне DNS экземпляра База данных Azure для MySQL Flexible Server и следуйте руководству Как связать частную зону DNS с виртуальной сетью, чтобы настроить связь с виртуальной сетью.

Очистка ресурсов

Удалите все ресурсы, которые вы создали в ходе этого руководства, с помощью следующей команды. Эта команда позволяет удалить все ресурсы в группе ресурсов.

az group delete -n myresourcegroup

Следующий шаг