Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何在使用ARM模板创建NIC时引用其他虚拟网络/资源组中的子网_Json_Azure_Arm Template_Azure Template - Fatal编程技术网

Json 如何在使用ARM模板创建NIC时引用其他虚拟网络/资源组中的子网

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

我正在尝试为资源组中的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'))]"
上面是我试图创建的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()的建议很好,但您忽略了其中的订阅。完整参考: