You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bicep配置VNet对等连接时循环逻辑报错求助

数据驱动VNet对等连接Bicep代码错误修复

问题说明

尝试实现数据驱动的Azure VNet对等连接方案,期望通过参数文件添加配置即可新增对等连接,但编写的Bicep代码出现类型错误:

The property "properties" expected a value of type "VirtualNetworkPeeringPropertiesFormat | null" but the provided value is of type "object[]"

错误原因

Microsoft.Network/virtualNetworks/virtualNetworkPeerings资源的properties字段要求是单个VirtualNetworkPeeringPropertiesFormat对象,原代码错误地在properties内部使用数组循环,生成了对象数组,不符合资源类型定义。

修复后的Bicep代码

调整循环逻辑,将对等连接的创建移到资源级别,每个目标VNet对应一个独立的对等连接资源:

param peers object

resource vNetPeer 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings@2020-05-01' = [
  // 遍历每个源VNet的对等配置组
  for peerGroup in peers.peerings:
  // 遍历当前源VNet下的所有目标对等VNet
  for destNetwork in peerGroup.vNetPeeringDestinationNetwork: {
    // 指定对等连接的父资源(源VNet)
    parent: resourceId('Microsoft.Network/virtualNetworks', peerGroup.vNetPeeringSourceNetwork)
    // 生成对等连接名称:源VNet名称-目标VNet后缀
    name: '${peerGroup.vNetPeeringSourceNetwork}-${destNetwork.peerNetworkSuffix}'
    properties: {
      allowVirtualNetworkAccess: destNetwork.allowVirtualNetworkAccess
      allowForwardedTraffic: destNetwork.allowForwardedTraffic
      allowGatewayTransit: destNetwork.allowGatewayTransit
      useRemoteGateways: destNetwork.useRemoteGateways
      remoteVirtualNetwork: {
        // 根据是否跨订阅生成目标VNet的资源ID
        id: destNetwork.remote 
          ? resourceId(destNetwork.remoteNetworkSubscription, destNetwork.peeredNetworkResourceGroup, 'Microsoft.Network/virtualNetworks', destNetwork.peerNetworkSuffix)
          : resourceId(destNetwork.peeredNetworkResourceGroup, 'Microsoft.Network/virtualNetworks', destNetwork.peerNetworkSuffix)
      }
    }
  }
]

参数文件说明

原参数文件结构无需修改,保持现有格式即可。每个peerings元素对应一个源VNet,其下的vNetPeeringDestinationNetwork数组可添加多个目标VNet的对等配置,部署时会自动为每个目标生成对应的对等连接。

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "peers": {
      "value": {
        "peerings": [
          {
            "vNetPeeringSourceNetwork": "Test-VM2",
            "vNetPeeringDestinationNetwork": [
              {
                "allowVirtualNetworkAccess": true,
                "allowForwardedTraffic": true,
                "allowGatewayTransit": false,
                "useRemoteGateways": false,
                "remote": false,
                "peerNetworkSuffix": "TestVM-vnet",
                "peeredNetworkResourceGroup": "TestVM",
                "remoteNetworkSubscription": "37beac69-e9c7-40fc-9d7b-6c1adf274185"
              },
              {
                "allowVirtualNetworkAccess": true,
                "allowForwardedTraffic": true,
                "allowGatewayTransit": false,
                "useRemoteGateways": false,
                "remote": false,
                "peerNetworkSuffix": "TestVM-vnet3",
                "peeredNetworkResourceGroup": "TestVM",
                "remoteNetworkSubscription": "37beac69-e9c7-40fc-9d7b-6c1adf274185"
              }
            ]
          }
        ]
      }
    }
  }
}

内容的提问来源于stack exchange,提问作者user20111722

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:35:20