gpt4 book ai didi

Azure ARM 故障转移组数据库属性不接受变量数组

转载 作者:行者123 更新时间:2023-12-02 22:02:58 24 4
gpt4 key购买 nike

我尝试使用 ARM 模板以编程方式将数据库分配到故障转移组,但我不断收到错误“InvalidResourceIdSegment”。我在论坛中发现了一些接近的东西here ,但是这仅适用于单个数据库,因此它不能完全解决我的问题。我基本上尝试使用一个变量,该变量是我需要添加到此故障转移组的数据库的resourceIds 数组列表。

"databases": {
"critical": {
"names": [
"DB1",
"DB2",
"DB3",
"DB4"
],
"ids": [
"[resourceId('Microsoft.Sql/servers/databases', variables('serverNameWest'), 'DB1')]",
"[resourceId('Microsoft.Sql/servers/databases', variables('serverNameWest'), 'DB2')]",
"[resourceId('Microsoft.Sql/servers/databases', variables('serverNameWest'), 'DB3')]",
"[resourceId('Microsoft.Sql/servers/databases', variables('serverNameWest'), 'DB4')]"
]
}
}

这是故障转移组资源的片段

{
"type": "Microsoft.Sql/servers/failoverGroups",
"name": "[concat(variables('serverNameWest'), '/', variables('failovergroups').critical)]",
"apiVersion": "2015-05-01-preview",
"condition": "[parameters('setRedundancy')]",
"tags": {
"Environment": "[parameters('Environment')]"
},
"properties": {
"readWriteEndpoint": {
"failoverPolicy": "Automatic",
"failoverWithDataLossGracePeriodMinutes": 15
},
"readOnlyEndpoint": {
"failoverPolicy": "Enabled"
},
"partnerServers": [
{
"id": "[resourceID('Microsoft.Sql/servers', variables('serverNameEast'))]"
}
],
"databases": [
"[variables('databases').critical.ids]"
]
},
"dependsOn": [
"[resourceID('Microsoft.Sql/servers', variables('serverNameEast'))]",
"[resourceID('Microsoft.Sql/servers', variables('serverNameWest'))]",
"[concat(resourceID('Microsoft.Sql/servers', variables('serverNameWest')), '/elasticpools/', variables('elasticpools').critwest)]",
"[concat(resourceID('Microsoft.Sql/servers', variables('serverNameEast')), '/elasticpools/', variables('elasticpools').criteast)]",
"BusinessCriticalWest",
"BusinessCriticalEast"
]
}

将变量 [variables('databases').ritical.ids] 传递到数据库属性总是会出现此错误:

"code": "InvalidResourceIdSegment",
"message": "url 中的 'parameters.properties.databases[0]' 段无效。"

但是,如果我单独添加它们,如下所示,一切都会正常。

"[variables('databases').critical.ids[0]]"

我尝试在属性中使用复制函数(这似乎不起作用,因为复制函数需要输入名称值对)和复制函数作为变量(它也返回有关 invalidResourceIdSegment 的相同错误) 。我很困惑,因此我们将不胜感激任何帮助。

最佳答案

@nicklaws 我刚刚在寻找其他东西时遇到了这个。

乍一看,我想知道这是否是一个问题:

variables('serverNameEast')

由于我看不到你的变量设置,所以我无法判断,但是我的变量通常如下所示:

variables('serverNameEast').name 

例如。

其次,这是一个完整的 ARM 模板,我已经使用过很多次并且它有效:

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"businessOwner": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "Responsible for billing of the resource"
}
},
"technicalOwner": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "Responsible for the technology decisions of the resource"
}
},
"environment": {
"type": "string",
"metadata": {
"description": "Provides information on the environment that the resource belongs to"
},
"allowedValues": [
"prod",
"nprd",
"sand"
]
},
"costCode": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "Provides a charge code or cost center to attribute the bill for the resources too. This could be a project code or cost Centre"
}
},
"projectName": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "Provides information on the project that the resource group and resources belong to."
}
},
"primaryAdministratorLogin": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "Administrator username for the server. Once created it cannot be changed."
}
},
"primaryAdministratorLoginPassword": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "The administrator login password (required for server creation)."
}
},
"sqlServerSecondaryRegion": {
"type": "string",
"metadata": {
"description": "The location of the secondary SQL Server."
}
},
"sqlServerSecondaryAdminUsername": {
"type": "string",
"metadata": {
"description": "The administrator username of the secondary SQL Server."
}
},
"sqlServerSecondaryAdminPassword": {
"type": "string",
"metadata": {
"description": "The administrator password of the secondary SQL Server."
}
},
"requestedServiceObjectiveName": {
"type": "string",
"metadata": {
"description": "The name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property."
}
},
"sampleName": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "Indicates the name of the sample schema to apply when creating this database. If createMode is not Default, this value is ignored. Not supported for DataWarehouse edition. - AdventureWorksLT"
}
},
"maxSizeBytes": {
"type": "string",
"defaultValue": "107374182400",
"metadata": {
"description": "The max size of the database expressed in bytes. If createMode is not Default, this value is ignored."
}
},
"collation": {
"type": "string",
"defaultValue": "SQL_Latin1_General_CP1_CI_AS",
"metadata": {
"description": "The collation of the database. If createMode is not Default, this value is ignored."
}
},
"createMode": {
"type": "string",
"defaultValue": "Default",
"metadata": {
"description": "Specifies the mode of database creation."
}
},
"readScale": {
"type": "string",
"defaultValue": "Disabled",
"metadata": {
"description": "Specifies the mode of database creation."
}
},
"edition": {
"type": "string",
"defaultValue": "Standard",
"metadata": {
"description": "The edition of the database."
}
},
"zoneRedundant": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones."
}
},
"firewallDigitalNetworkFrom": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "firewall rule"
}
},
"firewallDigitalNetworkTo": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "firewall rule"
}
},
"firewallMelbourneOfficeFrom": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "firewall rule"
}
},
"firewallMelbourneOfficeTo": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "firewall rule"
}
},
"firewallSydneyOfficeFrom": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "firewall rule"
}
},
"firewallSydneyOfficeTo": {
"type": "string",
"defaultValue": "NOT_SET",
"metadata": {
"description": "firewall rule"
}
},
"failoverEnabled": {
"type": "string",
"defaultValue": "true",
"metadata": {
"description": "Whether we allow a secondary SQL server with failover. This could be used to save money"
}
}
},
"variables": {
"sqlServerPrimary": {
"name": "[toLower(concat(parameters('projectName'), '-',parameters('environment'), '-', 'sqlsvr-primary'))]",
"requestedServiceObjectiveName": "[parameters('requestedServiceObjectiveName')]"
},
"sqlServerSecondary": {
"name": "[toLower(concat(parameters('projectName'), '-',parameters('environment'), '-', 'sqlsvr-secondary'))]"
},
"sqlFailoverGroupName": {
"name": "[toLower(concat(parameters('projectName'), '-',parameters('environment'), '-', 'failover-group'))]"
}
},
"resources": [
{
"name": "[variables('sqlServerPrimary').name]",
"type": "Microsoft.Sql/servers",
"apiVersion": "2015-05-01-preview",
"location": "[resourceGroup().location]",
"tags": {
"BusinessOwner": "[parameters('businessOwner')]",
"TechnicalOwner": "[parameters('technicalOwner')]",
"Environment": "[parameters('environment')]",
"CostCode": "[parameters('costCode')]",
"Project": "[parameters('projectName')]"
},
"properties": {
"administratorLogin": "[parameters('primaryAdministratorLogin')]",
"administratorLoginPassword": "[parameters('primaryAdministratorLoginPassword')]",
"version": "12.0"
},
"resources": [
{
"apiVersion": "2015-05-01-preview",
"condition": "[equals(parameters('failoverEnabled'),'true')]",
"type": "failoverGroups",
"name": "[variables('sqlFailoverGroupName').name]",
"tags": {
"BusinessOwner": "[parameters('businessOwner')]",
"TechnicalOwner": "[parameters('technicalOwner')]",
"Environment": "[parameters('environment')]",
"CostCode": "[parameters('costCode')]",
"Project": "[parameters('projectName')]"
},
"properties": {
"serverName": "[variables('sqlServerPrimary').name]",
"partnerServers": [
{
"id": "[resourceId('Microsoft.Sql/servers/', variables('sqlServerSecondary').name)]"
}
],
"readWriteEndpoint": {
"failoverPolicy": "Automatic",
"failoverWithDataLossGracePeriodMinutes": 60
},
"readOnlyEndpoint": {
"failoverPolicy": "Disabled"
},
"databases": [
]
},
"dependsOn": [
"[variables('sqlServerPrimary').name]",
"[resourceId('Microsoft.Sql/servers', variables('sqlServerSecondary').name)]"
]
},
{
"name": "AllowAllWindowsAzureIps",
"type": "firewallRules",
"apiVersion": "2015-05-01-preview",
"properties": {
"startIpAddress": "0.0.0.0",
"endIpAddress": "0.0.0.0"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', variables('sqlServerPrimary').name)]"
]
},
{
"name": "digitalNetwork",
"type": "firewallRules",
"apiVersion": "2015-05-01-preview",
"properties": {
"startIpAddress": "[parameters('firewallDigitalNetworkFrom')]",
"endIpAddress": "[parameters('firewallDigitalNetworkTo')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', variables('sqlServerPrimary').name)]"
]
},
{
"name": "MelbourneOffice",
"type": "firewallRules",
"apiVersion": "2015-05-01-preview",
"properties": {
"startIpAddress": "[parameters('firewallMelbourneOfficeFrom')]",
"endIpAddress": "[parameters('firewallMelbourneOfficeTo')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', variables('sqlServerPrimary').name)]"
]
},
{
"name": "SydneyOffice",
"type": "firewallRules",
"apiVersion": "2015-05-01-preview",
"properties": {
"startIpAddress": "[parameters('firewallSydneyOfficeFrom')]",
"endIpAddress": "[parameters('firewallSydneyOfficeTo')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', variables('sqlServerPrimary').name)]"
]
}
]
},
{
"type": "Microsoft.Sql/servers",
"kind": "v12.0",
"condition": "[equals(parameters('failoverEnabled'),'true')]",
"name": "[variables('sqlServerSecondary').name]",
"apiVersion": "2015-05-01-preview",
"location": "[parameters('sqlServerSecondaryRegion')]",
"tags": {
"BusinessOwner": "[parameters('businessOwner')]",
"TechnicalOwner": "[parameters('technicalOwner')]",
"Environment": "[parameters('environment')]",
"CostCode": "[parameters('costCode')]",
"Project": "[parameters('projectName')]"
},
"properties": {
"administratorLogin": "[parameters('sqlServerSecondaryAdminUsername')]",
"administratorLoginPassword": "[parameters('sqlServerSecondaryAdminPassword')]",
"version": "12.0"
},
"resources": [
{
"name": "AllowAllWindowsAzureIps",
"type": "firewallRules",
"condition": "[equals(parameters('failoverEnabled'),'true')]",
"apiVersion": "2015-05-01-preview",
"properties": {
"startIpAddress": "0.0.0.0",
"endIpAddress": "0.0.0.0"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', variables('sqlServerSecondary').name)]"
]
},
{
"name": "digitalNetwork",
"type": "firewallRules",
"condition": "[equals(parameters('failoverEnabled'),'true')]",
"apiVersion": "2015-05-01-preview",
"properties": {
"startIpAddress": "[parameters('firewallDigitalNetworkFrom')]",
"endIpAddress": "[parameters('firewallDigitalNetworkTo')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', variables('sqlServerSecondary').name)]"
]
},
{
"name": "MelbourneOffice",
"type": "firewallRules",
"condition": "[equals(parameters('failoverEnabled'),'true')]",
"apiVersion": "2015-05-01-preview",
"properties": {
"startIpAddress": "[parameters('firewallMelbourneOfficeFrom')]",
"endIpAddress": "[parameters('firewallMelbourneOfficeTo')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', variables('sqlServerSecondary').name)]"
]
},
{
"name": "SydneyOffice",
"type": "firewallRules",
"condition": "[equals(parameters('failoverEnabled'),'true')]",
"apiVersion": "2015-05-01-preview",
"properties": {
"startIpAddress": "[parameters('firewallSydneyOfficeFrom')]",
"endIpAddress": "[parameters('firewallSydneyOfficeTo')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', variables('sqlServerSecondary').name)]"
]
}
]
}
]

}

希望对大家有帮助。

关于Azure ARM 故障转移组数据库属性不接受变量数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52545989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com