Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как создать веб-приложение службы приложений Azure с гибким сервером Базы данных Azure для PostgreSQL в виртуальной сети.
В этой статье вы узнаете, как:
- Создание гибкого экземпляра сервера База данных Azure для PostgreSQL в виртуальной сети
- Создание веб-приложения.
- Добавление веб-приложения в виртуальную сеть
- Подключение к гибкому серверу База данных Azure для PostgreSQL из веб-приложения
Предпосылки
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Установите Azure CLI версии 2.0 или более поздней локально (или используйте Azure Cloud Shell, которая имеет предварительно установленную версию CLI). Чтобы узнать, какая установлена версия, выполните команду
az --version.Выполните вход в учетную запись с помощью команды az login. Запишите свойство id из выходных данных команды для соответствующего имени подписки.
az loginЕсли у вас несколько подписок, выберите соответствующую подписку для выставления счетов за ресурс. Выберите идентификатор конкретной подписки в учетной записи с помощью команды az account set .
az account set --subscription <subscription ID>
Создание гибкого экземпляра сервера
Создайте частную базу данных Azure для гибкого экземпляра сервера PostgreSQL в виртуальной сети с помощью следующей команды:
az postgres flexible-server create --resource-group demoresourcegroup --name demoserverpostgres --vnet demoappvnet --location westus2
Эта команда выполняет следующие действия, которые могут занять несколько минут:
- Создает группу ресурсов, если она еще не существует.
- Создает имя сервера, если он не указан.
- Создает виртуальную сеть и подсеть для База данных Azure для PostgreSQL гибкого экземпляра сервера.
- Создает имя администратора и пароль для сервера, если они не предоставляются.
- Создает пустую базу данных с именем postgres.
Ниже приведен пример выходных данных.
Creating Resource Group 'demoresourcegroup'...
Creating new Vnet "demoappvnet" in resource group "demoresourcegroup"
Creating new Subnet "Subnetdemoserverpostgres" in resource group "demoresourcegroup"
Creating a private dns zone demoserverpostgres.private.postgres.database.azure.com in resource group "demoresourcegroup"
Creating PostgreSQL Server 'demoserverpostgres' in group 'demoresourcegroup'...
Your server 'demoserverpostgres' is using sku 'Standard_D2s_v3' (Paid Tier). Please refer to https://aka.ms/postgres-pricing for pricing details
Creating PostgreSQL database 'flexibleserverdb'...
Make a note of your password. If you forget, you would have to reset your password with "az postgres flexible-server update -n demoserverpostgres -g demoresourcegroup -p <new-password>".
Try using 'az postgres flexible-server connect' command to test out connection.
{
"connectionString": "postgresql://generated-username:generated-password@demoserverpostgres.postgres.database.azure.com/postgres?sslmode=require",
"host": "demoserverpostgres.postgres.database.azure.com",
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/demoresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/demoserverpostgres",
"location": "East US",
"password": "generated-password",
"resourceGroup": "demoresourcegroup",
"skuname": "Standard_D2s_v3",
"subnetId": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/demoresourcegroup/providers/Microsoft.Network/virtualNetworks/demoappvnet/subnets/Subnetdemoserverpostgres",
"username": "generated-username",
"version": "12"
}
Создание веб-приложения.
В этом разделе описано, как создать узел приложения в приложении службы приложений, подключить это приложение к гибкой базе данных Базы данных Azure для PostgreSQL, а затем развернуть код на этом узле. Убедитесь, что в окне терминала вы находитесь в корне репозитория с кодом вашего приложения. Базовый план не поддерживает интеграцию виртуальной сети. Используйте standard или Premium.
Создайте приложение службы приложений (хост-процесс) с помощью az webapp up команды.
az webapp up --resource-group demoresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp
Замечание
- Для
_--location_ argumentиспользуйте то же расположение, что и для базы данных в предыдущем разделе. - Замените
<app-name>уникальным именем во всей среде Azure. Допустимые символы:<app-name>A-Z, 0-9 и -. Хорошим шаблоном является использование комбинации названия вашей компании и идентификатора приложения.
Эта команда выполняет следующие действия, которые могут занять несколько минут:
- Создает группу ресурсов, если она еще не существует. (В этой команде используется та же группа ресурсов, в которой вы создали базу данных ранее.)
- Создает приложение службы приложений, если оно не существует.
- Включает ведение журнала по умолчанию для приложения, если оно еще не включено.
- Загружает репозиторий с помощью ZIP-деплоймента с включенной автоматизацией сборки.
Создание подсети для веб-приложения
Прежде чем включить интеграцию виртуальной сети, вам потребуется подсеть, делегированная веб-приложению службы приложений. Перед созданием подсети просмотрите адрес подсети базы данных, чтобы избежать использования префикса того же адреса для подсети веб-приложения.
az network vnet show --resource-group demoresourcegroup -n demoappvnet
Выполните следующую команду, чтобы создать новую подсеть в той же виртуальной сети, что и гибкий экземпляр сервера Базы данных Azure для PostgreSQL. Обновите префикс адреса, чтобы избежать конфликтов с гибкой подсетью сервера Базы данных Azure для PostgreSQL.
az network vnet subnet create --resource-group demoresourcegroup --vnet-name demoappvnet --name webappsubnet --address-prefixes 10.0.1.0/24 --delegations Microsoft.Web/serverFarms
Добавление веб-приложения в виртуальную сеть
Используйте команду az webapp vnet-integration , чтобы добавить интеграцию региональной виртуальной сети в веб-приложение.
az webapp vnet-integration add --resource-group demoresourcegroup -n mywebapp --vnet demoappvnet --subnet webappsubnet
Настройка переменных среды для подключения к базе данных
После развертывания кода в Службе приложений подключите приложение к гибкому экземпляру сервера Базы данных Azure для PostgreSQL в Azure. Код приложения ожидает поиска сведений о базе данных во многих переменных среды. Чтобы задать переменные среды в службе приложений, используйте команду az webapp config appsettings set .
az webapp config appsettings set --name mywebapp --settings DBHOST="<postgres-server-name>.postgres.database.azure.com" DBNAME="postgres" DBUSER="<username>" DBPASS="<password>"
Замените postgres-server-name, имя пользователя и пароль значениями для вновь созданного экземпляра гибкого сервера Базы данных Azure для PostgreSQL.
Замените <username> и <password> учетными данными, которые также созданы командой.
Группа ресурсов и имя приложения приходят из кэшированных значений в файле .azure/config.
Команда создает параметры с именем DBHOST, DBNAME, DBUSER и DBPASS. Если код приложения использует разные имена для сведений о базе данных, используйте эти имена для параметров приложения, как упоминалось в коде.
Настройте веб-приложение так, чтобы разрешить все исходящие подключения из виртуальной сети.
az webapp config set --name mywebapp --resource-group demoresourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'
Очистите ресурсы
Очистите все ресурсы, созданные в статье, с помощью следующей команды. Эта команда позволяет удалить все ресурсы в группе ресурсов.
az group delete -n demoresourcegroup