Я пытаюсь создать FailOverGroup для SQL Сервера через шаблон ARM. В идеальном мире я хотел бы иметь возможность передавать массив имен баз данных в мой шаблон и использовать его для генерации массива ресурсов базы данных, однако я не смог заставить это работать. Следующая попытка состояла в том, чтобы добавить все базы данных из пула Elasti c в FOG, но, опять же, я не могу найти способ извлечения баз данных из пула через шаблон ARM. Ниже приведен мой текущий пример с «жестко закодированными» именами баз данных:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"origin_sql_server_name": {
"type": "string"
},
"web-database-name": {
"type": "string"
},
"core-database-name": {
"type": "string"
},
"failover-database-server-name": {
"type": "string"
},
"dr-resource-group-name": {
"type": "string"
}
},
"variables": {
"fog-name": "[concat(parameters('origin_sql_server_name'),'/', parameters('origin_sql_server_name'),'-fog')]"
},
"resources": [
{
"type": "Microsoft.Sql/servers/failoverGroups",
"apiVersion": "2015-05-01-preview",
"name": "[variables('fog-name')]",
"properties": {
"readWriteEndpoint": {
"failoverPolicy": "Automatic",
"failoverWithDataLossGracePeriodMinutes": 60
},
"readOnlyEndpoint": {
"failoverPolicy": "Disabled"
},
"partnerServers": [
{
"id": "[resourceId(parameters('dr-resource-group-name'),'Microsoft.Sql/servers', parameters('failover-database-server-name'))]"
}
],
"databases": [
"[resourceId('Microsoft.Sql/servers/databases', parameters('origin_sql_server_name'), parameters('web-database-name'))]",
"[resourceId('Microsoft.Sql/servers/databases', parameters('origin_sql_server_name'), parameters('core-database-name'))]"
]
}
}
],
"outputs":{
"fogName": {
"type": "string",
"value": "[concat(parameters('origin_sql_server_name'),'-fog')]"
}
},
"functions": [
]
}
Целью этого подхода является создание единого шаблона, который можно использовать на нескольких разных сайтах, имеющих похожие, но немного отличающиеся друг от друга требования к базе данных. Если это невозможно, у меня могут быть отдельные шаблоны, но я пытаюсь избежать этого для удобства обслуживания. Спасибо!