在 Arm 模板中使用 If/Else

Joh*_*uez 0 azure azure-resource-manager

我有一个可以自动构建多虚拟机环境的 ARM。我希望要求用户根据环境的大小来定义SMALL/MEDIUM/LARGE。然后,模板将根据环境大小的值决定虚拟机的类型。例如,如果大小 = 'SMALL',则 vmSize = 'Standard_E2s_v3',否则如果大小 = 'MEDIUM',则 vmSize = 'Standard_E8s_v3',否则如果大小 = 'LARGE',则 vmSize = 'Standard_E16s_v3'。我怎样才能做到这一点?

ARM 模板是否支持 if/else 语句?

bmo*_*sft 5

您当然可以在语言中嵌套 if() 语句(请参阅: https: //learn.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions#ological-functions),但是下面的方法IMO 更容易阅读...

  1. 使用您的 T 恤设置创建一个变量(如果需要,您可以在此处放置多个属性)
    "vmSize": {
      "small": "Standard_E2s_v3",
      "medium": "Standard_E8s_v3",
      "large": "Standard_E16s_v3"
    }
Run Code Online (Sandbox Code Playgroud)
  1. 然后通过以下方式设置大小:

"vmSize": "[variables('vmSize')[parameters('tshirtSize')]]"