【问题标题】:How to reference subnets from another virtual network/resource group when creating a NIC using ARM templates使用 ARM 模板创建 NIC 时如何从另一个虚拟网络/资源组引用子网
【发布时间】:2019-07-27 02:39:26
【问题描述】:

我正在尝试为资源组中的虚拟机创建 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' 失败并显示消息 '{ “错误”: { "code": "InvalidRequestFormat", "message": "无法解析请求。", “细节”: [ { "code": "InvalidJsonReferenceFormat", “消息”:“参考 ID /subscriptions/404422c0-743d-4459-9db0-01892d0c7348/resourceGroups/hu b-network-rg/providers/Microsoft.Network/virtualNetworks/bsrgh-hub-vnetvirtualNetworks/subnetsdomain 格式不正确。 Id 应引用资源 虚拟网络/子网类型。小路 properties.ipConfigurations[0].properties.subnet。”

我认为这是在抱怨我在顶部完成了子网引用变量的格式。有没有更好的方法可以做到这一点,还是我在某个地方出错了?

【问题讨论】:

    标签: json azure arm-template azure-template


    【解决方案1】:

    您忘记了代码中的/

    "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'))
    

    它更短,更不容易出错

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 2019-03-13
    相关资源
    最近更新 更多