Azure ARM 模板部署
Azure ARM template deployment
我正在尝试通过 Azure ARM 模板为 VM 创建 NIC 卡。但我的脚本还创建了连接 NIC 到应用程序网关。但截至目前,我只创建 VM 和 NIC。 App gateway和NIC的Concatenation有没有条件可以跳过。下面是网卡创建模板:
{
"comments": "NIC_Creation",
"tags": {
"owner": "[parameters('owner')]"
},
"condition": "[equals(parameters('CreateVM'), 'yes')]",
"dependsOn": [
// "[resourceId('Microsoft.Network/publicIPAddresses', parameters('VM_PublicIP_Name'))]",
// "[resourceId('Microsoft.Network/virtualNetworks', parameters('VNET_Name'))]",
"[resourceId('Microsoft.Network/publicIPAddresses', parameters('VM_PublicIP_Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', parameters('VNET_Name'))]",
"[resourceId('Microsoft.Network/networkSecurityGroups', parameters('NSG_Name'))]",
"[resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name'))]"
],
"type": "Microsoft.Network/networkInterfaces",
"name": "[parameters('NIC_Name')]",
"apiVersion": "2018-02-01",
"location": "[parameters('myvmlocation')]",
"scale": null,
"properties": {
"provisioningState": "Succeeded",
"resourceGuid": "e319fe3b-4162-4501-81e7-b657be52f411",
"ipConfigurations": [
{
"name": "ipconfig1",
"etag": "W/\"a9185125-7a6e-4811-ae29-4afe520e7c4f\"",
"properties": {
"provisioningState": "Succeeded",
"privateIPAddress": "192.168.1.4",//192.168.1.4 //172.19.0.5
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('VM_PublicIP_Name'))]"
},
"subnet": {
"id": "[concat(resourceId('Microsoft.Network/virtualNetworks', parameters('VNET_Name')), '/subnets/',parameters('subnetname'))]"
},
"primary": true,
"privateIPAddressVersion": "IPv4",
"applicationGatewayBackendAddressPools": [
{
"condition": "[equals(parameters('CreateAppgateway'), 'yes')]",
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name')), '/backendAddressPools/sxBackendPool')]"
},
{
"condition": "[equals(parameters('CreateAppgateway'), 'yes')]",
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name')), '/backendAddressPools/nxBackendPool')]"
}
]
}
}
],
"dnsSettings": {
"dnsServers": [],
"appliedDnsServers": []
},
"macAddress": "00-0D-3A-1F-51-61",
"enableAcceleratedNetworking": false,
"enableIPForwarding": false,
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('NSG_Name'))]"
},
"primary": true
}
},
我在 applicationGatewayBackendAddressPools
中添加了一个条件,但它不起作用。任何人都可以在这里帮助我吗?
不,您不能对单个属性设置条件。你可以做的是使用 if()
函数和变量以及 json()
函数来计算所需的结果
"applicationGatewayBackendAddressPools": "[if(equals(parameters('CreateAppgateway'), 'yes'), variables('applicationGateways'), json('null'))]"
首先,所有功劳归功于帮助解决此问题的 https://whosebug.com/users/6067741/4c74356b41 (4c74356b41)。感谢您的帮助。
我使用了 IF 函数并实现如下所示。成功了!!
"variables": {
"AssociateNIC":
[{
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name')), '/backendAddressPools/sxBackendPool')]"
},
{
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name')), '/backendAddressPools/nxBackendPool')]"
}]
},
"applicationGatewayBackendAddressPools": "[if(equals(parameters('CreateAppgateway'), 'yes'), variables('AssociateNIC'), json('null'))]"
我正在尝试通过 Azure ARM 模板为 VM 创建 NIC 卡。但我的脚本还创建了连接 NIC 到应用程序网关。但截至目前,我只创建 VM 和 NIC。 App gateway和NIC的Concatenation有没有条件可以跳过。下面是网卡创建模板:
{
"comments": "NIC_Creation",
"tags": {
"owner": "[parameters('owner')]"
},
"condition": "[equals(parameters('CreateVM'), 'yes')]",
"dependsOn": [
// "[resourceId('Microsoft.Network/publicIPAddresses', parameters('VM_PublicIP_Name'))]",
// "[resourceId('Microsoft.Network/virtualNetworks', parameters('VNET_Name'))]",
"[resourceId('Microsoft.Network/publicIPAddresses', parameters('VM_PublicIP_Name'))]",
"[resourceId('Microsoft.Network/virtualNetworks', parameters('VNET_Name'))]",
"[resourceId('Microsoft.Network/networkSecurityGroups', parameters('NSG_Name'))]",
"[resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name'))]"
],
"type": "Microsoft.Network/networkInterfaces",
"name": "[parameters('NIC_Name')]",
"apiVersion": "2018-02-01",
"location": "[parameters('myvmlocation')]",
"scale": null,
"properties": {
"provisioningState": "Succeeded",
"resourceGuid": "e319fe3b-4162-4501-81e7-b657be52f411",
"ipConfigurations": [
{
"name": "ipconfig1",
"etag": "W/\"a9185125-7a6e-4811-ae29-4afe520e7c4f\"",
"properties": {
"provisioningState": "Succeeded",
"privateIPAddress": "192.168.1.4",//192.168.1.4 //172.19.0.5
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('VM_PublicIP_Name'))]"
},
"subnet": {
"id": "[concat(resourceId('Microsoft.Network/virtualNetworks', parameters('VNET_Name')), '/subnets/',parameters('subnetname'))]"
},
"primary": true,
"privateIPAddressVersion": "IPv4",
"applicationGatewayBackendAddressPools": [
{
"condition": "[equals(parameters('CreateAppgateway'), 'yes')]",
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name')), '/backendAddressPools/sxBackendPool')]"
},
{
"condition": "[equals(parameters('CreateAppgateway'), 'yes')]",
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name')), '/backendAddressPools/nxBackendPool')]"
}
]
}
}
],
"dnsSettings": {
"dnsServers": [],
"appliedDnsServers": []
},
"macAddress": "00-0D-3A-1F-51-61",
"enableAcceleratedNetworking": false,
"enableIPForwarding": false,
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('NSG_Name'))]"
},
"primary": true
}
},
我在 applicationGatewayBackendAddressPools
中添加了一个条件,但它不起作用。任何人都可以在这里帮助我吗?
不,您不能对单个属性设置条件。你可以做的是使用 if()
函数和变量以及 json()
函数来计算所需的结果
"applicationGatewayBackendAddressPools": "[if(equals(parameters('CreateAppgateway'), 'yes'), variables('applicationGateways'), json('null'))]"
首先,所有功劳归功于帮助解决此问题的 https://whosebug.com/users/6067741/4c74356b41 (4c74356b41)。感谢您的帮助。
我使用了 IF 函数并实现如下所示。成功了!!
"variables": {
"AssociateNIC":
[{
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name')), '/backendAddressPools/sxBackendPool')]"
},
{
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', parameters('AppGateWay_Name')), '/backendAddressPools/nxBackendPool')]"
}]
},
"applicationGatewayBackendAddressPools": "[if(equals(parameters('CreateAppgateway'), 'yes'), variables('AssociateNIC'), json('null'))]"