[英]How to reference subnets from another virtual network/resource group when creating a NIC using ARM templates
我正在嘗試為資源組中的VM創建一個NIC。 我遇到的問題是我正在嘗試引用Azure中另一個資源組的子網。 因此,我必須使用ARM模板中的訂閱級別部署來引用它。
"subnetref": "[concat(subscription().id, '/resourceGroups/', parameters('HUB Network RG'), '/providers/Microsoft.Network/virtualNetworks/', parameters('HUB VNet'), '/virtualNetworks/subnets', parameters('HUB DC Subnet'))]"
上面是我要創建的子網引用變量。 然后,我在下面嘗試創建的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')]"
}
}
}
]
}
},
然后,我得到以下錯誤。
“ New-AzDeployment:14:54:23-資源Microsoft.Network/networkInterfaces” before-nic“失敗,並顯示消息'{” error“:{” code“:” InvalidRequestFormat“,” message“:”無法解析該請求。 ,“詳細信息”:[{“代碼”:“ InvalidJsonReferenceFormat”,“消息”:“參考ID / subscriptions / 404422c0-743d-4459-9db0-01892d0c7348 / resourceGroups / hu b-network-rg / providers / Microsoft.Network / “ virtualNetworks / bsrgh-hub-vnetvirtualNetworks / subnetsdomain的格式不正確。該ID應該引用virtualNetworks / subnets類型的資源。路徑properties.ipConfigurations [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'))
它更短,更不容易出錯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.