Azure ARM 模板 - 在单个输入参数上设置 NSG 和子网
Azure ARM Template - Set NSG and Subnet on single input parameter
正在根据提出的一组问题创建基于 VM 的 Azure 模板。截至目前,我有两个与网络相关的参数字段,一个是子网名称(现有子网),另一个是 NSG 名称(同样已经存在)。
在这个模板中,我不想创建新的子网或 NSG,我们设置环境的方式是我们网络的扩展,因此每个子网都绑定到特定的 NSG,因为它们有特定的用途;例如,Application Subnet/NSG、SQL Subnet/NSG、Web Subnet/NSG 等,其中定义了规则。
我的问题是,与其让人们 select 每个人都有一个子网和一个 NSG(他们在技术上可以 select 两个分开并且规则不一致 = 没有连接),我想在参数中提示他们说服务器 "purpose"(应用程序、SQL、Web、DMZ 等)并根据他们的回答自动设置新 VM 需要的 NSG 和子网也被添加了。
想法?
好吧,如果 application\sql\dmz 和 subnet\nsg 之间的 link 是固定的和预定义的,您可以轻松完成。创建变量并计算值:
"subnet": "[concat(parameters('purpose'), ' Subnet')]",
"nsg": "[concat(parameters('purpose'), ' Subnet/NSG')]",
您可以使用对象进行映射:
subnets: {
"application": "purposesubnet",
"sql": "nopurposesubnet",
...
},
subnet: "[variables('subnets')[parameters('applicationPurpose')]]"
NSG 也一样
正在根据提出的一组问题创建基于 VM 的 Azure 模板。截至目前,我有两个与网络相关的参数字段,一个是子网名称(现有子网),另一个是 NSG 名称(同样已经存在)。
在这个模板中,我不想创建新的子网或 NSG,我们设置环境的方式是我们网络的扩展,因此每个子网都绑定到特定的 NSG,因为它们有特定的用途;例如,Application Subnet/NSG、SQL Subnet/NSG、Web Subnet/NSG 等,其中定义了规则。
我的问题是,与其让人们 select 每个人都有一个子网和一个 NSG(他们在技术上可以 select 两个分开并且规则不一致 = 没有连接),我想在参数中提示他们说服务器 "purpose"(应用程序、SQL、Web、DMZ 等)并根据他们的回答自动设置新 VM 需要的 NSG 和子网也被添加了。
想法?
好吧,如果 application\sql\dmz 和 subnet\nsg 之间的 link 是固定的和预定义的,您可以轻松完成。创建变量并计算值:
"subnet": "[concat(parameters('purpose'), ' Subnet')]",
"nsg": "[concat(parameters('purpose'), ' Subnet/NSG')]",
您可以使用对象进行映射:
subnets: {
"application": "purposesubnet",
"sql": "nopurposesubnet",
...
},
subnet: "[variables('subnets')[parameters('applicationPurpose')]]"
NSG 也一样