在ARM模板部署我需要添加SQL Server上的防火牆例外在同一個模板中定義Azure的應用程序服務的出站IP地址功能的使用:引用()在資源的copy.count(Azure的RM模板)
{
"name": "[concat(variables('sqlServerName'),'/azureFireWallRule',copyIndex())]",
"type": "Microsoft.Sql/servers/firewallRules",
"apiVersion": "2014-04-01",
"properties": {
"startIpAddress": "[split(reference(variables('appServiceRef')).possibleOutboundIpAddresses,',')[copyIndex()]]",
"endIpAddress": "[split(reference(variables('appServiceRef')).possibleOutboundIpAddresses,',')[copyIndex()]]"
},
"copy": {
"name": "[concat(variables('sqlServerName'),'azureFireWallRule')]",
"count": "[length(split(reference(variables('appServiceRef')).possibleOutboundIpAddresses,','))]"
},
"dependsOn": [
"[variables('sqlServerRef')]",
"[variables('appServiceRef')]"
]
}
但是不允許在copy.count中使用reference()函數。
我試圖解決這個(不是沒有運氣):具有嵌套部署資源通過IP數作爲paramater
- 使用條件屬性
OFC,問題可能是通過2次連續部署解決。但是有沒有一種方法可以通過單個ARM模板來實現?
如果您[請檢查Azure網絡應用的** possibleOutboundIpAddresses **或** outboundIpAddresses **](http://ruslany.net/2015/06/how-to-find-out-outbound-ip-addresses -used-azure-web-app /),你可以發現它通常包含4個出站IP地址。所以你可以嘗試直接設置「count」爲4。 –
這並非總是如此。我有5-6 possibleOutbounIpAddresses有時 –