首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Arm模板中使用If/Arm

在Arm模板中使用If/Arm
EN

Stack Overflow用户
提问于 2020-11-04 18:36:56
回答 2查看 1.5K关注 0票数 0

我有一个自动构建多VM环境的ARM。我希望请用户根据环境的大小来定义中小/大型。然后,模板将根据环境大小的值来决定VM的类型。例如,如果size = 'SMALL',vmSize = 'Standard_E2s_v3',如果size = 'MEDIUM',则vmSize = 'Standard_E8s_v3',否则如果size =‘vmSize’,则vmSize= 'Standard_E16s_v3‘。我怎么能这么做?

ARM模板甚至支持if/else语句吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-04 21:41:09

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

  1. 创建一个带有T恤设置的变量(如果需要,您可以在这里放置多个属性)
代码语言:javascript
复制
    "vmSize": {
      "small": "Standard_E2s_v3",
      "medium": "Standard_E8s_v3",
      "large": "Standard_E16s_v3"
    }
  1. 然后通过以下方式设置大小:

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

票数 4
EN

Stack Overflow用户

发布于 2020-11-04 21:38:52

你应该调查一下变量

代码可以是这样的:

代码语言:javascript
复制
"parameters": {
  "size": {
    "type": "string",
    "allowedValues": [
      "small",
      "medium"
    ]
  }
},
"variables": {
  "vmsizes": {
    "small": {
      "vmSize": "Standard_E2s_v3"
    },
    "medium": {
      "vmSize": "Standard_E8s_v3"
    }
  }
},

可以这样使用:

代码语言:javascript
复制
"[variables('vmsizes')[parameters('size')].vmSize]"

您也可以使用一个变量和一个逻辑表达式 (if/else)来做同样的事情。

代码语言:javascript
复制
"vmSize": "[if(equals(parameters('size'), 'small'), 'Standard_E2s_v3', '<probably a nested if in your case>')]"

我更喜欢第一种选择。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64685838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档