Я пытаюсь параметризовать развертывание виртуальной машины, которая использует зоны доступности.Тем не менее, я получаю эту ошибку при развертывании:
'Недопустимое значение для параметра шаблона' AvailabilityZoneParameter 'в строке' 1 'и столбце' 5118 '.'
или:
"Сбой анализа шаблона развертывания: 'Ошибка преобразования значения \" [' 1 '] \ "в тип' System.String [] '. Path' '.'.". "1007 *
ПараметрСинтаксис файла в настоящее время:
"availabilityZoneParameter": {
"value": "[ '1' ]"
}
Затем я портирую его как параметр и превращаю в переменную, прежде чем экспортировать его в другие связанные шаблоны, а также использовать в исходном шаблоне сборки.
Параметр в синтаксисе файла развертывания:
"availabilityZoneParameter": {
"type": "string"
}
Переменная в исходном синтаксисе файла развертывания:
"availabilityZone": "[parameters('availabilityZoneParameter')]"
Синтаксис создания диска в исходном файле развертывания:
{
"name": "[variables('diskName')]",
"type": "Microsoft.Compute/disks",
"apiVersion": "2017-03-30",
"location": "[resourceGroup().location]",
"zones": [ "[variables('availabilityZone')]" ],
"sku": {
"name": "Standard_LRS"
},
"properties": {
"creationData": {
"createOption": "Empty"
},
"diskSizeGB": 1023
}
},
Параметр VM в исходном шаблоне развертывания, который передается в связанный шаблон:
"name": "PAN-VM",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2018-05-01",
"dependsOn": [
"[concat('Microsoft.Compute/disks/', variables('diskName'))]",
"Microsoft.Resources/deployments/SettingUpVirtualNetwork",
"Microsoft.Resources/deployments/SettingUpPublicIP",
"Microsoft.Resources/deployments/SetupNetworkInterfaces"
],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(variables('virtualMachineTemplate'), parameters('artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.5"
},
"parameters": {
"avZone": {
"value": "[variables('availabilityZone')]"
Параметр шаблона VM:
"avZone": {
"type": "string"
Переменная шаблона VM:
"variables": {
"apiVersion": "2018-04-01",
"availabilityZone": "[parameters('avZone')]"
Ресурс шаблона виртуальной машины (параметр вызова):
"resources": [
{
"apiVersion": "[variables('apiVersion')]",
"type": "Microsoft.Compute/virtualMachines",
"name": "[parameters('vmName')]",
"location": "[parameters('location')]",
"zones": "[variables('availabilityZone')]",
"plan": {
"name": "[parameters('imageSku')]",
"product": "[parameters('imageOffer')]",
"publisher": "[parameters('imagePublisher')]"
},
"properties":
Для контекста- здесь есть несколько файлов.Исходный файл azureparameters, файл azuredeploy, а затем по крайней мере два связанных шаблона, которые также зависят от значения зоны доступности.
Любой совет относительно правильного синтаксиса?