我正在编写ARM模板来部署Application Gateway。 “后端”服务器已经存在且具有私有IP地址。
如果我通过门户网站创建应用程序网关。我可以选择我想要成为后端池一部分的VM。我试图在ARM模板中创建它,但我没有任何成功。 ARM模板部署没有任何错误,但是当我检查后端池时,没有任何资源与它绑定。
以下是我的ARM模板的适用部分:
"backendAddressPools": [
{
"name": "PublishPool",
"properties": {
"backendIPConfigurations": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces/ipConfigurations', parameters('networkInterfaceName'), parameters('ipConfigurationName'))]"
}
],
}
}
]
我已经设法通过使用IP地址本身来实现它(如果你走这条路线,JSON看起来有点不同),但是如果IP地址改变的话,这可能会导致问题;我宁愿使用对网络接口本身的引用。
答案 0 :(得分:0)
Microsoft.Network/networkInterfaces/ipConfigurations', 参数('networkInterfaceName'),参数('ipConfigurationName'))
如果您这样使用,Azure无法找到您的NIC。你可以查看Azure Resource Explorer。您可以找到如下所示的备份池配置:
"backendIPConfigurations": [
{
"id": "/subscriptions/****/resourceGroups/shuitest/providers/Microsoft.Network/networkInterfaces/shui1482/ipConfigurations/ipconfig1"
}
],
所以,你应该修改你的json,如下所示:
properties": {
"backendIPConfigurations": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'), 'ipConfigurations',parameters('ipConfigurationName'))]"
}
],
答案 1 :(得分:0)
我在这里参加派对很晚,但我希望这有助于未来的互联网旅行者。
这是非常不明显的,但你必须在接口配置中定义后端池 。
这是我的ARM模板,为我想要添加到后端池的接口配置IP配置:
"properties": {
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('clientNetworkName')), '/subnets/', variables('clientPriSubnetName'))]"
},
"applicationGatewayBackendAddressPools": [
{
"id": "[concat(resourceId('Microsoft.Network/applicationGateways', variables('appGWName')), '/backendAddressPools/appGatewayBackendPool')]"
}
]
}
(请注意解析我的应用程序网关的资源ID的applicationGatewayBackendAddressPools
部分。)
然后在ARM模板部分中为网关后端池本身:
"backendAddressPools": [{
"name": "appGatewayBackendPool",
"properties": {
"backendIPConfigurations" : [
{
"id": "[concat(resourceId('Microsoft.Network/networkInterfaces',concat('networkInterface-',variables('webBaseName'),'1-pri')),'/ipConfigurations/ipconfig1')]"
},
{
"id": "[concat(resourceId('Microsoft.Network/networkInterfaces',concat('networkInterface-',variables('webBaseName'),'2-pri')),'/ipConfigurations/ipconfig1')]"
}
]
}
}],
这会向后端池添加两个接口(标识为networkInterface-client-web01-pri
和networkInterface-client-web02-pri
)。
感谢this GitHub issue让我指出了正确的方向,并且感谢微软几乎没有任何关于此的文档显然已经有几年了。