快速入门:使用 ARM 模板创建 Azure Database for PostgreSQL 单一服务器
适用于:Azure Database for PostgreSQL 单一服务器
重要
Azure Database for PostgreSQL - 单一服务器即将停用。 强烈建议升级到 Azure Database for PostgreSQL - 灵活服务器。 有关迁移到 Azure Database for PostgreSQL 灵活服务器的详细信息,请参阅 Azure Database for PostgreSQL 单一服务器的最新动态?
用于 PostgreSQL 的 Azure 数据库是一种托管服务,可用于在云中运行、管理和缩放具有高可用性的 PostgreSQL 数据库。 在本快速入门中,使用 Azure 资源管理器模板(ARM 模板)在 Azure 门户、PowerShell 或 Azure CLI 中创建 Azure Database for PostgreSQL 单一服务器。
资源管理器模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 模板使用声明性语法。 在声明性语法中,你可以在不编写创建部署的编程命令序列的情况下,描述预期部署。
如果你的环境满足先决条件,并且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 Azure 门户中会打开模板。
先决条件
适用于:Azure Database for PostgreSQL 单一服务器
重要
Azure Database for PostgreSQL - 单一服务器即将停用。 强烈建议升级到 Azure Database for PostgreSQL - 灵活服务器。 有关迁移到 Azure Database for PostgreSQL 灵活服务器的详细信息,请参阅 Azure Database for PostgreSQL 单一服务器的最新动态?
具有活动订阅的 Azure 帐户。 创建一个试用帐户。
查看模板
创建的 Azure Database for PostgreSQL 服务器中包含一组已配置的计算和存储资源。 若要了解详细信息,请参阅Azure Database for PostgreSQL 中的定价层 - 单一服务器。 请在 Azure 资源组中创建该服务器。
本快速入门中使用的模板来自 Azure 快速启动模板。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"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",
"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",
"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": {
"batch": {
"rules": [
{
"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.Network/virtualNetworks",
"apiVersion": "2020-06-01",
"name": "[parameters('virtualNetworkName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
}
},
"resources": [
{
"type": "subnets",
"apiVersion": "2020-06-01",
"name": "[parameters('subnetName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('virtualNetworkName')]"
],
"properties": {
"addressPrefix": "[parameters('subnetPrefix')]"
}
}
]
},
{
"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": "[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')]"
}
},
"resources": [
{
"type": "virtualNetworkRules",
"apiVersion": "2017-12-01",
"name": "[parameters('virtualNetworkRuleName')]",
"dependsOn": [
"[resourceId('Microsoft.DBforPostgreSQL/servers/', parameters('serverName'))]"
],
"properties": {
"virtualNetworkSubnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",
"ignoreMissingVnetServiceEndpoint": true
}
}
]
},
{
"type": "Microsoft.DBforPostgreSQL/servers/firewallRules",
"apiVersion": "2017-12-01",
"name": "[concat(parameters('serverName'),'/',variables('firewallrules').batch.rules[copyIndex()].Name)]",
"location": "[parameters('location')]",
"copy": {
"name": "firewallRulesCopy",
"mode": "Serial",
"batchSize": 1,
"count": "[length(variables('firewallrules').batch.rules)]"
},
"dependsOn": [
"[resourceId('Microsoft.DBforPostgreSQL/servers/', parameters('serverName'))]"
],
"properties": {
"startIpAddress": "[variables('firewallrules').batch.rules[copyIndex()].StartIpAddress]",
"endIpAddress": "[variables('firewallrules').batch.rules[copyIndex()].EndIpAddress]"
}
}
]
}
该模板定义了五个 Azure 资源:
- Microsoft.Network/virtualNetworks
- Microsoft.Network/virtualNetworks/subnets
- Microsoft.DBforPostgreSQL/servers
- Microsoft.DBforPostgreSQL/servers/virtualNetworkRules
- Microsoft.DBforPostgreSQL/servers/firewallRules
可以在 Azure 快速入门模板中找到更多 Azure Database for PostgreSQL 模板示例。
部署模板
适用于:Azure Database for PostgreSQL 单一服务器
重要
Azure Database for PostgreSQL - 单一服务器即将停用。 强烈建议升级到 Azure Database for PostgreSQL - 灵活服务器。 有关迁移到 Azure Database for PostgreSQL 灵活服务器的详细信息,请参阅 Azure Database for PostgreSQL 单一服务器的最新动态?
选择以下链接以在 Azure 门户中部署 Azure Database for PostgreSQL 服务器模板:
在“部署具有 VNet 的 Azure Database for PostgreSQL”页上:
对于“资源组”,请选择“新建”,输入新资源组的名称,然后选择“确定” 。
如果你创建了一个新资源组,请为该资源组和新服务器选择一个位置。
输入服务器名称、管理员登录名和管理员登录密码 。
根据需要更改其他默认设置:
- 订阅:要用于服务器的 Azure 订阅。
- SKU 容量:vCore 容量,值可以是 2(默认值)、4、8、16、32 或 64 。
- SKU 名称:SKU 层前缀、SKU 系列和 SKU 容量,以下划线联接,例如 B_Gen5_1、GP_Gen5_2(默认值)或 MO_Gen5_32 。
- SKU 大小(MB) :Azure Database for PostgreSQL 服务器的存储大小,以 MB 为单位(默认值为 51200)。
- SKU 层:部署层,例如“基本”、“常规用途”(默认值)或“内存优化” 。
- SKU 系列:“Gen4”或“Gen5”(默认值),表示服务器部署的硬件代系 。
- PostgreSQL 版本:要部署的 PostgreSQL 服务器版本,例如 9.5、9.6、10 或 11(默认值)。
- 备份保留天数:异地冗余备份的所需保留期,以天为单位(默认值为 7)。
- 异地冗余备份:“已启用”或“已禁用”(默认值),具体取决于异地灾难恢复 (Geo-DR) 要求 。
- 虚拟网络名称:虚拟网络的名称(默认值为 azure_postgresql_vnet)。
- 子网名称:子网的名称(默认值为 azure_postgresql_subnet)。
- 虚拟网络规则名称:允许子网的虚拟网络规则的名称(默认值为 AllowSubnet)。
- VNet 地址前缀:虚拟网络的地址前缀(默认值为 10.0.0.0/16)。
- 子网前缀:子网的地址前缀(默认值为 10.0.0.0/16)。
阅读条款和条件,并选择“我同意上述条款和条件”。
选择“购买”。
查看已部署的资源
适用于:Azure Database for PostgreSQL 单一服务器
重要
Azure Database for PostgreSQL - 单一服务器即将停用。 强烈建议升级到 Azure Database for PostgreSQL - 灵活服务器。 有关迁移到 Azure Database for PostgreSQL 灵活服务器的详细信息,请参阅 Azure Database for PostgreSQL 单一服务器的最新动态?
按照以下步骤查看新 Azure Database for PostgreSQL 服务器的概览:
在 Azure 门户中,搜索并选择“Azure Database for PostgreSQL 服务器”。
在数据库列表中选择你的新服务器。 随后会显示新 Azure Database for PostgreSQL 服务器的“概览”页。
从门户导出 ARM 模板
可从 Azure 门户导出 ARM 模板。 可以通过两种方式来导出模板:
- 从资源组或资源导出。 此选项基于现有的资源生成新模板。 导出的模板是资源组当前状态的“快照”。 可以导出整个资源组,或该资源组中的特定资源。
- 在部署之前导出或从历史记录导出。 此选项检索用于部署的确切模板副本。
导出模板时,将在 PostgreSQL 服务器资源的 "properties":{ }
部分中看到,出于安全原因不会包含 administratorLogin
和 administratorLoginPassword
。 部署模板前,必须将这些参数添加到模板中,否则模板会失败。
"resources": [
{
"type": "Microsoft.DBforPostgreSQL/servers",
"apiVersion": "2017-12-01",
"name": "[parameters('servers_name')]",
"location": "chinaeast2",
"sku": {
"name": "B_Gen5_1",
"tier": "Basic",
"family": "Gen5",
"capacity": 1
},
"properties": {
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
清理资源
如果不再需要该资源组,可以将其删除,这将删除资源组中的资源。
适用于:Azure Database for PostgreSQL 单一服务器
重要
Azure Database for PostgreSQL - 单一服务器即将停用。 强烈建议升级到 Azure Database for PostgreSQL - 灵活服务器。 有关迁移到 Azure Database for PostgreSQL 灵活服务器的详细信息,请参阅 Azure Database for PostgreSQL 单一服务器的最新动态?
在 Azure 门户中,搜索并选择“资源组”。
在资源组列表中,选择你的资源组的名称。
在资源组的“概览”页中,选择“删除资源组” 。
在确认对话框中,键入资源组的名称,然后选择“删除”。
后续步骤
有关引导你完成模板创建过程的分步教程,请参阅: