Azure ARM模板 - 在单个输入参数上设置NSG和子网

时间:2017-11-30 03:29:32

标签: json azure azure-resource-manager azure-template

在创建基于一组问题建立在VM上的Azure模板的过程中。截至目前,我有两个与网络侧相关的参数字段,一个是子网名称(现有子网),另一个是NSG名称(已经存在)。

在此模板中,我不想创建新的子网或NSG以及我们设置环境的方式,它是我们网络的扩展,因此每个子网都与特定的NSG绑定,因为它们具有具体目的;例如,Application Subnet / NSG,SQL Subnet / NSG,Web Subnet / NSG等,其中定义了规则。

我的问题是,不是让人们选择每个子网和NSG(他们可以在技术上选择两个独立的,规则不会对齐=没有连接),我想提示他们在参数中说服务器"目的" (应用程序,SQL,Web,DMZ等)并根据他们的答案自动设置新VM需要添加的NSG和子网。

思想?

1 个答案:

答案 0 :(得分:0)

好吧,如果application \ sql \ _dmz和subnet \ nsg之间的链接是固定的,并且预定义了,你可以轻松完成。 créate变量并计算值:

"subnet": "[concat(parameters('purpose'), ' Subnet')]",
"nsg": "[concat(parameters('purpose'), ' Subnet/NSG')]",

您可以使用对象进行映射:

subnets: {
    "application": "purposesubnet",
    "sql": "nopurposesubnet",
    ...
},
subnet: "[variables('subnets')[parameters('applicationPurpose')]]"

同样适用于NSG