Зона доступности Azure Синтаксис параметра ARM A

Я пытаюсь добавить зону доступности в свой шаблон руки виртуальной машины.

В большинстве случаев я не хочу, чтобы виртуальная машина находилась в зоне, поскольку это одна виртуальная машина.

Итак, в моем шаблоне ARM я определил раздел зоны как:

"zones":[
        "[if(greaterOrEquals(parameters('availabilityZone'), 1),parameters('availabilityZone'),json('null'))]"
      ],

это работает нормально, если я установил значение 1 или выше, но не работает, если я оставлю поле пустым.

Ошибка проверки с сообщением: «Зона (а)» для ресурса «Microsoft.Compute / virtualMachines / XXX» не поддерживается.

если я удалю условие if, тогда жесткий код в пустом поле будет работать:

"zones": "",

Я заранее ценю вашу помощь.

Стю


person Stuart Gordon    schedule 12.01.2021    source источник


Ответы (2)


Пожалуйста, попробуйте что-то вроде этого, если ваш параметр не содержит, он передаст пустое значение,

зоны: [если (пусто (параметры ('availabilityZone')), '', parameters ('availabilityZone'))],

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-string?tabs=json#empty

person Shiva kumar G    schedule 13.01.2021

мы нашли следующее решение, которое сработало:

зоны: если (пусто (параметры ('availabilityZone')), параметры ('availabilityZone'), массив (parameters ('availabilityZone')))]

person Stuart Gordon    schedule 15.01.2021