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

Область применения: отдельный сервер Базы данных Azure для PostgreSQL

В этом кратком руководстве описывается, как с помощью команд Azure CLI в Azure Cloud Shell создать один сервер Базы данных Azure для PostgreSQL за пять минут.

Совет

Рассмотрите возможность использования более простой команды Azure CLI az postgres up. Ознакомьтесь с кратким руководством.

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

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

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье Краткое руководство по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в разделе Запуск Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, приведены в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Запуск Azure Cloud Shell

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

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

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

Вход в Azure

Проверка подлинности Cloud Shell автоматически производится с данными той учетной записи, с которой был осуществлен вход. Используйте следующий скрипт, чтобы войти с другой подпиской, указав вместо <Subscription ID> идентификатор нужной подписки Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

subscription="<subscriptionId>" # add subscription here

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

Дополнительные сведения см. в разделах Настройка активной подписки и Интерактивный вход.

Установка значений параметра

Следующие значения используются в последующих командах для создания базы данных и требуемых ресурсов. Имена серверов должны быть глобально уникальными в Azure, поэтому для создания имени сервера используется функция $RANDOM.

Измените расположение на соответствующее вашей среде. Замените значения 0.0.0.0 в диапазоне IP-адресов в соответствии с конкретной средой. Воспользуйтесь общедоступным IP-адресом используемого компьютера, чтобы разрешить доступ к серверу только своему IP-адресу.

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server-and-firewall-rule"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
# Specify appropriate IP address values for your environment
# to limit / allow access to the PostgreSQL server
startIp=0.0.0.0
endIp=0.0.0.0
echo "Using resource group $resourceGroup with login: $login, password: $password..."

Создание группы ресурсов

Создайте группу ресурсов с помощью команды az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.

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

Создание сервера

Создайте сервер с помощью команды az postgres server create.

# 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

Примечание

  • Имя сервера может содержать только строчные буквы, цифры и знак дефиса (-). Длина должна составлять от 3 до 63 символов. Дополнительные сведения см. в статье Правила именования в службе "База данных Azure для PostgreSQL".
  • В качестве имени пользователя для администратора нельзя использовать варианты azure_superuser, admin, administrator, root, guest или public.
  • Пароль должен содержать от 8 до 128 знаков трех из следующих категорий: прописные латинские буквы, строчные латинские буквы, цифры и другие знаки.
  • Дополнительные сведения о SKU см. на странице цен на Базу данных Azure для PostgreSQL.

Важно!

Настройка правила брандмауэра на уровне сервера

Создайте правило брандмауэра с помощью команды az postgres server firewall-rule create, чтобы предоставить вашей локальной среде доступ для подключения к серверу.

# Configure a firewall rule for the server 
echo "Configuring a firewall rule for $server for the IP address range of $startIp to $endIp"
az postgres server firewall-rule create --resource-group $resourceGroup --server $server --name AllowIps --start-ip-address $startIp --end-ip-address $endIp

Совет

Если вы не знаете свой IP-адрес, перейдите на сайт WhatIsMyIPAddress.com, чтобы его получить.

Примечание

Во избежание проблем с подключением убедитесь, что в брандмауэре сети разрешен порт 5432. Серверы службы "База данных Azure для PostgreSQL" используют этот порт.

Список правил брандмауэра на основе сервера

Чтобы вывести список имеющихся правил брандмауэра сервера, запустите команду az postgres server firewall-rule list.

# List firewall rules for the server
echo "List of server-based firewall rules for $server"
az postgres server firewall-rule list --resource-group $resourceGroup --server-name $server
# You may use the switch `--output table` for a more readable table format as the output.

Выходные данные будут содержать правила брандмауэра (если они имеются) в используемом по умолчанию формате JSON. Вы можете использовать --output table, чтобы получить выходные данные в виде более удобной таблицы.

Получение сведений о подключении

Чтобы подключиться к серверу, укажите сведения об узле и учетные данные для доступа.

az postgres server show --resource-group $resourceGroup --name $server

Запишите значения administratorLogin и fullyQualifiedDomainName.

Подключение к Базе данных Azure для PostgreSQL с помощью psql

Клиент psql — популярное средство, используемое для подключения к серверам PostgreSQL. Вы можете подключиться к серверу, используя psql в Azure Cloud Shell. Вы можете также использовать psql в локальной среде, если она доступна. С новым сервером PostgreSQL автоматически создается пустая база данных postgres. Эту базу данных можно использовать для подключения к psql, как показано в следующем коде.

psql --host=<server_name>.postgres.database.azure.com --port=5432 --username=<admin_user>@<server_name> --dbname=postgres

Совет

Если вы предпочитаете использовать URL-путь для подключения к Postgres, закодируйте с помощью URL-адреса знак @ в имени пользователя с использованием %40. Например, строка подключения для psql будет выглядеть так:

psql postgresql://<admin_user>%40<server_name>@<server_name>.postgres.database.azure.com:5432/postgres

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

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

az group delete --name $resourceGroup

Дальнейшие действия