尝试根据 Vnet 上的标记值自动对虚拟 WAN 集线器连接执行操作未找到参数

问题描述

首先介绍一些背景信息。

我正在尝试创建一个 Azure 策略,该策略使用特定标记和值搜索所有订阅中的所有 vnet。如果匹配,则应使用 azure 模板执行 DeployIfNotExist 部署,其中部署将在与 vnet 所在位置不同的订阅中运行。我正在尝试使用嵌套模板来解决此问题,但正在努力从策略中获取 vnet 名称并将其作为参数插入嵌套模板中。

尝试在 Azure 中创建定义时遇到的错误是:找不到模板参数 vnetname。

如果我将 parameters('vnetname') 替换为实际的 vnet 名称,则此策略和部署有效,并且我可以创建修复任务,以创建从集线器到其他订阅中的 vnet 的 vnet 连接。

我希望有人知道如何以不同的方式解决这个问题,或者有人发现我的代码有什么问题。下面是从部署中选择的代码。如果您需要更多代码,请告诉我:

                                                                   "deployment":  {
                                                                            "properties":  {
                                                                                "mode": "Incremental","parameters": {
                                                                                              },"template":  {
                                                                                      "$schema":  "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":  "1.0.0.0","parameters":  {
                                                                                                     },"variables":  {
                                                                                                    },"resources":  [
                                                                                                {
                                                                                                    "type": "Microsoft.Resources/deployments","apiVersion": "2020-10-01","name": "nestedTemplate","resourceGroup": "itp-net-pwe-rg","subscriptionId": "c8fa0a01-84d0-4999-aec3-713e02ed248c","properties": {
                                                                                                        "mode": "Incremental","parameters":{
                                                                                                            "vnetname": {
                                                                                                                            "value": "[[field('name')]"
                                                                                                                        }
                                                                                                        },"template":  {
                                                                                                            "$schema":  "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","parameters":  {
                                                                                                                "vnetname": {
                                                                                                                    "type": "string"
                                                                                                                            }
                                                                                                                           },"variables":  {
                                                                                                                          },"resources": [
                                                                                                                {
                                                                                                                    "type":  "Microsoft.Network/virtualHubs/hubVirtualNetworkConnections","apiVersion":  "2020-06-01","name":  "itp-net-pwe-vwan-hub/source-to-hub-westeurope","location": "westeurope","dependsOn":  [
                                                                                                                                  ],"properties":  {
                                                                                                                                        "remoteVirtualNetwork": {
                                                                                                                                            "id": "[resourceId('Microsoft.Network/virtualNetworks',parameters('vnetname'))]" },"allowHubToRemoteVnetTransit": true,"allowRemoteVnetToUseHubVnetGateways": true,"enableInternetSecurity": false 
                                                                                                                                    }
                                                                                                                }
                                                                                                                        ]
                                                                                                                    }
                                                                                                                     }
                                                                                                }
                                                                                                    ]

解决方法

我设法通过将参数置于正确的级别来解决我自己的问题。该政策现在按预期工作。