2017-04-24 32 views
1

我正在编写ARM模板以部署应用网关。 “后端”服务器已经存在并具有专用IP地址。具有现有后端IP的Azure应用网关

如果我通过门户创建应用程序网关。我可以选择我想要成为后端池一部分的VM。我正在尝试在ARM模板中创建它,并且我没有取得任何成功。 ARM模板部署时没有任何错误,但是当我检查后端池时,没有任何资源绑定到它。

这里是我的ARM模板的应用部分的样子:

"backendAddressPools": [ 
      { 
      "name": "PublishPool", 
      "properties": { 
       "backendIPConfigurations": [ 
       { 
        "id": "[resourceId('Microsoft.Network/networkInterfaces/ipConfigurations', parameters('networkInterfaceName'), parameters('ipConfigurationName'))]" 
       } 
       ],    
      } 
      } 
     ] 

我已经成功地得到它的工作通过使用IP地址本身(JSON看起来有点不同,如果你走这条路)但是如果IP地址在路上改变,这可能会导致问题;我宁愿使用对网络接口本身的引用。

回答

0

Microsoft.Network/networkInterfaces/ipConfigurations', 参数( 'networkInterfaceName'),参数( 'ipConfigurationName'))

如果你使用这个样子,天青找不到你的网卡。你可以检查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'))]" 
       } 
       ],   
+0

我想,昨天(今天早上,以防万一我做了一个试图再次错误昨天),当我部署ARM模板“无法评估模板语言函数resourceId”时,出现以下错误:'Microsoft.Network/networkInterfaces'类型需要'1'资源名称参数。'我同意你拥有它的方式更直观,但我认为你应该在一个字符串中描述整个资源路径,然后提供N个参数,N取决于根据您描述的资源类型。 –

+0

如果可能,你能分享你的模板吗?我想在我的实验室中测试并给出结果。另外,请删除敏感信息。 –

+0

我已经通用化了这个文件。希望在这样做的时候,我没有犯任何错误。该模板假定存在虚拟网络和子网以及为后端池配置的资源。 https://pastebin.com/rshL4Gi9。谢谢。 –

相关问题