建立名為 postgres-flexible-server-template.json
的檔案,並將下列 JSON 定義複製到其中。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serverName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"version": {
"type": "string",
"defaultValue": "16"
},
"availabilityZone": {
"type": "string",
"defaultValue": "1"
},
"activeDirectoryAuth": {
"type": "string",
"defaultValue": "Disabled"
},
"passwordAuth": {
"type": "string",
"defaultValue": "Enabled"
},
"administratorLogin": {
"type": "string",
"defaultValue": "adminuser"
},
"administratorLoginPassword": {
"type": "secureString"
},
"skuTier": {
"type": "string",
"defaultValue": "GeneralPurpose"
},
"skuName": {
"type": "string",
"defaultValue": "Standard_D4ds_v5"
},
"storageType": {
"type": "string",
"defaultValue": "Premium_LRS"
},
"storageSizeGB": {
"type": "int",
"defaultValue": 128
},
"storageTier": {
"type": "string",
"defaultValue": "P10"
},
"storageAutoGrow": {
"type": "string",
"defaultValue": "Enabled"
},
"highAvailabilityMode": {
"type": "string",
"defaultValue": "ZoneRedundant"
},
"standbyAvailabilityZone": {
"type": "string",
"defaultValue": "2"
},
"backupRetentionDays": {
"type": "int",
"defaultValue": 7
},
"geoRedundantBackup": {
"type": "string",
"defaultValue": "Disabled"
},
"publicNetworkAccess": {
"type": "string",
"defaultValue": "Enabled"
},
"tags": {
"type": "object",
"defaultValue": {
"Environment": "PostgreSQL Quickstart"
}
},
"firewallRules": {
"type": "array"
}
},
"resources": [
{
"type": "Microsoft.DBforPostgreSQL/flexibleServers",
"apiVersion": "2024-08-01",
"name": "[parameters('serverName')]",
"location": "[parameters('location')]",
"sku": {
"tier": "[parameters('skuTier')]",
"name": "[parameters('skuName')]"
},
"properties": {
"version": "[parameters('version')]",
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
"authConfig": {
"activeDirectoryAuth": "[parameters('activeDirectoryAuth')]",
"passwordAuth": "[parameters('passwordAuth')]"
},
"network": {
"publicNetworkAccess": "[parameters('publicNetworkAccess')]"
},
"highAvailability": {
"mode": "[parameters('highAvailabilityMode')]",
"standbyAvailabilityZone": "[parameters('standbyAvailabilityZone')]"
},
"storage": {
"autoGrow": "[parameters('storageAutoGrow')]",
"storageSizeGB": "[parameters('storageSizeGB')]",
"tier": "[parameters('storageTier')]",
"type": "[parameters('storageType')]"
},
"backup": {
"backupRetentionDays": "[parameters('backupRetentionDays')]",
"geoRedundantBackup": "[parameters('geoRedundantBackup')]"
},
"availabilityZone": "[parameters('availabilityZone')]",
"tags": "[parameters('tags')]"
}
},
{
"copy": {
"name": "createFirewallRules",
"count": "[length(range(0, if(greater(length(parameters('firewallRules')), 0), length(parameters('firewallRules')), 1)))]",
"mode": "serial",
"batchSize": 1
},
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "[format('firewallRules-{0}', range(0, if(greater(length(parameters('firewallRules')), 0), length(parameters('firewallRules')), 1))[copyIndex()])]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
},
"mode": "Incremental",
"parameters": {
"ip": {
"value": "[parameters('firewallRules')[range(0, if(greater(length(parameters('firewallRules')), 0), length(parameters('firewallRules')), 1))[copyIndex()]]]"
},
"serverName": {
"value": "[parameters('serverName')]"
}
},
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serverName": {
"type": "string"
},
"ip": {
"type": "object"
}
},
"resources": [
{
"type": "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules",
"apiVersion": "2024-08-01",
"name": "[format('{0}/{1}', parameters('serverName'), parameters('ip').name)]",
"properties": {
"startIpAddress": "[parameters('ip').startIPAddress]",
"endIpAddress": "[parameters('ip').endIPAddress]"
}
}
]
}
},
"dependsOn": [
"[resourceId('Microsoft.DBforPostgreSQL/flexibleServers', parameters('serverName'))]"
]
}
]
}