Json 如何在使用ARM模板创建NIC时引用其他虚拟网络/资源组中的子网
我正在尝试为资源组中的VM创建NIC。我遇到的问题是,我试图引用Azure中另一个资源组的子网。因此,我必须使用ARM模板中的订阅级别部署来引用它Json 如何在使用ARM模板创建NIC时引用其他虚拟网络/资源组中的子网,json,azure,arm-template,azure-template,Json,Azure,Arm Template,Azure Template,我正在尝试为资源组中的VM创建NIC。我遇到的问题是,我试图引用Azure中另一个资源组的子网。因此,我必须使用ARM模板中的订阅级别部署来引用它 "subnetref": "[concat(subscription().id, '/resourceGroups/', parameters('HUB Network RG'), '/providers/Microsoft.Network/virtualNetworks/', parameters('HUB VNet'), '/virtualNet
"subnetref": "[concat(subscription().id, '/resourceGroups/', parameters('HUB Network RG'), '/providers/Microsoft.Network/virtualNetworks/', parameters('HUB VNet'), '/virtualNetworks/subnets', parameters('HUB DC Subnet'))]"
上面是我试图创建的subnet ref变量。然后,我为我尝试创建的VM NIC提供了以下信息
{
"type": "Microsoft.Network/networkInterfaces",
"name": "[variables('nicnamedc1')]",
"location": "[variables('location')]",
"apiVersion": "2018-10-01",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[variables('subnetRef')]"
}
}
}
]
}
},
然后我得到下面的错误
新部署:14:54:23-资源
Microsoft.Network/networkInterfaces“在nic之前”失败,并显示消息
“{”错误:{
“代码”:“InvalidRequestFormat”,
“消息”:“无法分析请求。”,
“详情”:[
{
“代码”:“InvalidJsonReferenceFormat”,
“消息”:“参考Id/subscriptions/404422c0-743d-4459-9db0-01892d0c7348/resourceGroups/hu
b-network-rg/providers/Microsoft.network/virtualNetworks/bsrgh-hub-vnetvirtualNetworks/subnetsdomain
格式不正确。Id应引用资源
虚拟网络/子网的类型。路径
properties.IPConfiguration[0]。properties.subnet。“
我认为它在抱怨我在顶部使用subnetref变量的格式。是否有更好的方法来执行此操作,或者我在哪里出错了?您忘记了代码中的
/
:
"subnetref": "[concat(subscription().id, '/resourceGroups/', parameters('HUB Network RG'), '/providers/Microsoft.Network/virtualNetworks/', parameters('HUB VNet'), '/virtualNetworks/subnets/', parameters('HUB DC Subnet'))]"
但是您最好使用resourceId()
函数:
resourceId(parameters('HUB Network RG'), 'Microsoft.Network/virtualNetworks/subnets', parameters('HUB VNet'), parameters('HUB DC Subnet'))
它要短得多,也不容易出错您对resourceId()的建议很好,但您忽略了其中的订阅。完整参考: