Краткое руководство. Создание База данных Azure для PostgreSQL с одним сервером с помощью шаблона ARM
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
База данных Azure для PostgreSQL — это управляемая служба, с помощью которой можно запускать и масштабировать базы данных PostgreSQL высокой доступности, а также управлять ими в облаке. В этом кратком руководстве показано, как с помощью шаблона Azure Resource Manager (шаблона ARM) создать Базу данных Azure для PostgreSQL (отдельный сервер), используя портал Azure, PowerShell или Azure CLI.
Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.
Если среда соответствует предварительным требованиям и вы знакомы с использованием шаблонов ARM, нажмите кнопку Развертывание в Azure. Шаблон откроется на портале Azure.
Необходимые компоненты
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
Изучение шаблона
Сервер Базы данных Azure для PostgreSQL создается с настроенным набором вычислительных ресурсов и ресурсов хранения. См. сведения в статье Ценовые категории Базы данных Azure для PostgreSQL (отдельный сервер) Он создается в группе ресурсов Azure.
Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "16694921643873529380"
}
},
"parameters": {
"serverName": {
"type": "string",
"metadata": {
"description": "Server Name for Azure Database for PostgreSQL"
}
},
"administratorLogin": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Database administrator login name"
}
},
"administratorLoginPassword": {
"type": "securestring",
"minLength": 8,
"metadata": {
"description": "Database administrator password"
}
},
"skuCapacity": {
"type": "int",
"defaultValue": 2,
"metadata": {
"description": "Azure Database for PostgreSQL compute capacity in vCores (2,4,8,16,32)"
}
},
"skuName": {
"type": "string",
"defaultValue": "GP_Gen5_2",
"metadata": {
"description": "Azure Database for PostgreSQL sku name "
}
},
"skuSizeMB": {
"type": "int",
"defaultValue": 51200,
"metadata": {
"description": "Azure Database for PostgreSQL Sku Size "
}
},
"skuTier": {
"type": "string",
"defaultValue": "GeneralPurpose",
"allowedValues": [
"Basic",
"GeneralPurpose",
"MemoryOptimized"
],
"metadata": {
"description": "Azure Database for PostgreSQL pricing tier"
}
},
"skuFamily": {
"type": "string",
"defaultValue": "Gen5",
"metadata": {
"description": "Azure Database for PostgreSQL sku family"
}
},
"postgresqlVersion": {
"type": "string",
"defaultValue": "11",
"allowedValues": [
"9.5",
"9.6",
"10",
"10.0",
"10.2",
"11"
],
"metadata": {
"description": "PostgreSQL version"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"backupRetentionDays": {
"type": "int",
"defaultValue": 7,
"metadata": {
"description": "PostgreSQL Server backup retention days"
}
},
"geoRedundantBackup": {
"type": "string",
"defaultValue": "Disabled",
"metadata": {
"description": "Geo-Redundant Backup setting"
}
},
"virtualNetworkName": {
"type": "string",
"defaultValue": "azure_postgresql_vnet",
"metadata": {
"description": "Virtual Network Name"
}
},
"subnetName": {
"type": "string",
"defaultValue": "azure_postgresql_subnet",
"metadata": {
"description": "Subnet Name"
}
},
"virtualNetworkRuleName": {
"type": "string",
"defaultValue": "AllowSubnet",
"metadata": {
"description": "Virtual Network RuleName"
}
},
"vnetAddressPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "Virtual Network Address Prefix"
}
},
"subnetPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "Subnet Address Prefix"
}
}
},
"variables": {
"firewallrules": [
{
"Name": "rule1",
"StartIpAddress": "0.0.0.0",
"EndIpAddress": "255.255.255.255"
},
{
"Name": "rule2",
"StartIpAddress": "0.0.0.0",
"EndIpAddress": "255.255.255.255"
}
]
},
"resources": [
{
"type": "Microsoft.DBforPostgreSQL/servers/virtualNetworkRules",
"apiVersion": "2017-12-01",
"name": "[format('{0}/{1}', parameters('serverName'), parameters('virtualNetworkRuleName'))]",
"properties": {
"virtualNetworkSubnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",
"ignoreMissingVnetServiceEndpoint": true
},
"dependsOn": [
"[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]"
]
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2023-09-01",
"name": "[parameters('virtualNetworkName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2023-09-01",
"name": "[format('{0}/{1}', parameters('virtualNetworkName'), parameters('subnetName'))]",
"properties": {
"addressPrefix": "[parameters('subnetPrefix')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]"
]
},
{
"type": "Microsoft.DBforPostgreSQL/servers",
"apiVersion": "2017-12-01",
"name": "[parameters('serverName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('skuName')]",
"tier": "[parameters('skuTier')]",
"capacity": "[parameters('skuCapacity')]",
"size": "[format('{0}', parameters('skuSizeMB'))]",
"family": "[parameters('skuFamily')]"
},
"properties": {
"createMode": "Default",
"version": "[parameters('postgresqlVersion')]",
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
"storageProfile": {
"storageMB": "[parameters('skuSizeMB')]",
"backupRetentionDays": "[parameters('backupRetentionDays')]",
"geoRedundantBackup": "[parameters('geoRedundantBackup')]"
},
"sslEnforcement": "Enabled",
"minimalTlsVersion": "TLS1_2"
}
},
{
"copy": {
"name": "firewallRules",
"count": "[length(variables('firewallrules'))]",
"mode": "serial",
"batchSize": 1
},
"type": "Microsoft.DBforPostgreSQL/servers/firewallRules",
"apiVersion": "2017-12-01",
"name": "[format('{0}/{1}', parameters('serverName'), variables('firewallrules')[copyIndex()].Name)]",
"properties": {
"startIpAddress": "[variables('firewallrules')[copyIndex()].StartIpAddress]",
"endIpAddress": "[variables('firewallrules')[copyIndex()].EndIpAddress]"
},
"dependsOn": [
"[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]"
]
}
],
"outputs": {
"name": {
"type": "string",
"value": "[parameters('serverName')]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Этот шаблон определяет пять ресурсов:
- Microsoft.Network/virtualNetworks;
- Microsoft.Network/virtualNetworks/subnets;
- Microsoft.DBforPostgreSQL/servers
- Microsoft.DBforPostgreSQL/servers/virtualNetworkRules
- Microsoft.DBforPostgreSQL/servers/firewallRules
Дополнительные примеры шаблонов Базы данных Azure для PostgreSQL см. в списке шаблонов быстрого запуска Azure.
Развертывание шаблона
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
Щелкните следующую ссылку, чтобы развернуть шаблон сервера Базы данных Azure для PostgreSQL с помощью портала Azure.
На странице Развертывание Базы данных Azure для PostgreSQL с виртуальной сетью сделайте следующее.
В разделе Группа ресурсов щелкните Создать новую, введите имя новой группы ресурсов и нажмите ОК.
Если вы создаете новую группу ресурсов, выберите расположение для группы ресурсов и новый сервер.
Введите значения в полях Имя сервера, Имя входа администратора и Пароль администратора для входа.
Измените остальные стандартные параметры по своему усмотрению.
- Подписка — выберите подписку Azure, которую вы примените для этого сервера.
- Емкость SKU — количество виртуальных ядер, где допускаются значения 2 (по умолчанию), 4, 8, 16, 32 или 64.
- Имя SKU — префикс уровня SKU, семейство SKU и емкость SKU, соединенные символами подчеркивания, например так: B_Gen5_1, GP_Gen5_2 (по умолчанию) или MO_Gen5_32.
- Размер SKU в МБ — объем хранилища сервера Базы данных Azure для PostgreSQL в мегабайтах (по умолчанию это 51200).
- Уровень SKU — уровень развертывания, например Basic, GeneralPurpose (по умолчанию) или MemoryOptimized.
- Семейство Sku: 4-го или 5-го поколения (по умолчанию), указывающее создание оборудования для развертывания сервера.
- Версия PostgreSQL — версия сервера PostgreSQL для развертывания, например 9.5, 9.6, 10 или 11 (по умолчанию).
- Backup Retention Days (Срок хранения резервных копий) — требуемый период для хранения геоизбыточных резервных копий в днях (по умолчанию 7).
- Геоизбыточное резервное копирование: включена или отключена (по умолчанию) в зависимости от требований геоизбыточного восстановления (geo-DR).
- Имя виртуальной сети — имя используемой виртуальной сети (по умолчанию azure_postgresql_vnet).
- Имя подсети — имя используемой подсети (по умолчанию azure_postgresql_subnet).
- Имя правила виртуальной сети — имя правила виртуальной сети, которое разрешает эту подсеть (по умолчанию AllowSubnet).
- Префикс адресов виртуальной сети — префикс адресов для виртуальной сети (по умолчанию 10.0.0.0/16).
- Префикс подсети — префикс адресов для подсети (по умолчанию 10.0.0.0/16).
Прочтите условия использования и установите флажок Я принимаю указанные выше условия.
Щелкните Приобрести.
Просмотр развернутых ресурсов
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
Чтобы просмотреть сводные сведения о новом сервере Базы данных Azure для PostgreSQL, сделайте следующее.
На портале Azure выполните поиск по фразе Серверы Базы данных Azure для PostgreSQL и выберите этот вариант.
В списке баз данных выберите новый сервер. Откроется страница Обзор для нового сервера Базы данных Azure для PostgreSQL.
Экспорт шаблона ARM с портала
Вы можете экспортировать шаблон ARM с портала Azure. Шаблон можно экспортировать двумя способами:
- Экспорт из группы ресурсов или ресурса. В этом варианте создается новый шаблон из существующих ресурсов. Экспортированный шаблон — это "моментальный снимок" текущего состояния группы ресурсов. Вы можете экспортировать всю группу ресурсов или определенные ресурсы в ней.
- Экспорт до развертывания или из журнала. В этом варианте выполняется получение точной копии шаблона, используемой для развертывания.
При экспорте шаблона в разделе "properties":{ }
ресурса сервера PostgreSQL вы увидите, что administratorLogin
и administratorLoginPassword
не включены из соображений безопасности. ОБЯЗАТЕЛЬНО добавьте эти параметры в свой шаблон, прежде чем развертывать его. В противном случае возникнет ошибка шаблона.
"resources": [
{
"type": "Microsoft.DBforPostgreSQL/servers",
"apiVersion": "2017-12-01",
"name": "[parameters('servers_name')]",
"location": "southcentralus",
"sku": {
"name": "B_Gen5_1",
"tier": "Basic",
"family": "Gen5",
"capacity": 1
},
"properties": {
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
Очистка ресурсов
Удалите ненужную группу ресурсов, когда надобность в ней отпадет. Ресурсы в ней также будут удалены.
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
На портале Azure найдите и выберите элемент Группы ресурсов.
В списке групп ресурсов выберите имя нужной группы ресурсов.
На странице Обзор для этой группы ресурсов выберите Удалить группу ресурсов.
В диалоговом окне подтверждения введите имя группы ресурсов и щелкните Удалить.
Следующие шаги
Пошаговые инструкции по созданию шаблона см. в следующей статье:
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по