Создание сервера и настройка правила виртуальной сети с помощью Azure CLI на гибком сервере База данных Azure для PostgreSQL

В этом примере скрипта CLI создается гибкий сервер База данных Azure для PostgreSQL и настраивается правило виртуальной сети.

Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.

Предпосылки

Пример скрипта

Запуск Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Он содержит стандартные средства Azure, предварительно установленные и настроенные для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com.

Когда откроется Cloud Shell, убедитесь, что для вашей среды выбран вариант Bash. В последующих сеансах в среде Bash будет использоваться Azure CLI. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить его.

Вход в Azure

Cloud Shell автоматически аутентифицируется с помощью учетной записи, с которой выполнен первый вход. Используйте следующий сценарий для входа с помощью другой подписки, заменив subscriptionId идентификатором подписки Azure.

Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.

subscription="subscriptionId" # Set Azure subscription ID here

az account set -s $subscription # ...or use 'az login'

Для получения дополнительной информации см. разделы установите активную подписку или войдите во интерактивный режим.

Запустите скрипт

# Create a PostgreSQL server and configure a vNet rule

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
vNet="vNet-$randomIdentifier"
vNetAddressPrefix="10.0.0.0/16"
subnet="subnet-$randomIdentifier"
subnetAddressPrefix="10.0.1.0/24"
rule="rule-$randomIdentifier"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"

echo "Using resource group $resourceGroup with login: $login, password: $password..."

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

# Get available service endpoints for Azure region output is JSON
echo "List of available service endpoints for $location"
az network vnet list-endpoint-services --location "$location"

# Add Azure SQL service endpoint to a subnet while creating the virtual network
echo "Adding service endpoint to $subnet in $vNet"
az network vnet create --resource-group $resourceGroup --name $vNet --address-prefixes $vNetAddressPrefix --location "$location"

# Creates the service endpoint
echo "Creating a service endpoint to $subnet in $vNet"
az network vnet subnet create --resource-group $resourceGroup --name $subnet --vnet-name $vNet --address-prefix $subnetAddressPrefix --service-endpoints Microsoft.SQL

# View service endpoints configured on a subnet
echo "Viewing the service endpoint to $subnet in $vNet"
az network vnet subnet show --resource-group $resourceGroup --name $subnet --vnet-name $vNet

# Create a VNet rule on the server to secure it to the subnet
# Note: resource group (-g) parameter is where the database exists.
# VNet resource group if different should be specified using subnet id (URI) instead of subnet, VNet pair.
echo "Creating a VNet rule on $server to secure it to $subnet in $vNet"
az postgres server vnet-rule create --name $rule --resource-group $resourceGroup --server $server --vnet-name $vNet --subnet $subnet

Очистите ресурсы

Если вам больше не нужны определенные ресурсы, вы можете удалить их и соответствующую группу ресурсов с помощью команды az group delete. Как создание, так и удаление определенных ресурсов может занять некоторое время.

az group delete --name $resourceGroup

Образец ссылки

Этот скрипт использует команды, описанные в следующей таблице:

Command Notes
az group create - создать группу Создает группу ресурсов для хранения всех ресурсов.
az postgresql server create - создайте сервер PostgreSQL Создает гибкий сервер База данных Azure для PostgreSQL, на котором размещаются базы данных.
az network virtual network list-endpoint-services Список служб, поддерживающих туннелирование служб виртуальной сети в определенном регионе.
az network virtual network create (команда для создания виртуальной сети в Azure CLI) Создает виртуальную сеть.
az network виртуальная сеть подсеть создать Создает подсеть и привязывает к ней существующие NSG и таблицу маршрутов.
Команда "az network virtual network subnet show" для отображения информации о подсети в виртуальной сети Отображает сведения о подсети.
az postgresql server vnet-rule create Создает правило виртуальной сети, разрешающее доступ к гибкому серверу База данных Azure для PostgreSQL.
az group delete (удалить группу az) Удаляет группу ресурсов, включая все вложенные в неё ресурсы.