代码之家  ›  专栏  ›  技术社区  ›  Manjunath Rao

Azure ARM模板部署。未提供模板参数的值

  •  0
  • Manjunath Rao  · 技术社区  · 4 年前

    我正在扩展一个Azure快速入门模板,以部署带有VNET集成的Azure Web应用程序。RG、网络组件和应用程序服务计划已创建(使用powershell)。我正在使用ARM模板部署Web应用程序。但是我在执行部署时遇到以下错误。

    错误:

    PS C:\Users\manjug\Desktop> New-AzResourceGroupDeployment `
            -Name 'test01' `
            -ResourceGroupName ITQIG-eu-manjug-windows-app `
            -TemplateParameterUri C:\Users\manjug\Desktop\azuredeploy_webapp.parameters.json `
            -TemplateUri C:\Users\manjug\Desktop\azuredeploy_webapp.json `
            -Verbose
    VERBOSE: Performing the operation "Creating Deployment" on target "ITQIG-eu-manjug-windows-app".
    New-AzResourceGroupDeployment : 2:22:59 PM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'The value for the template parameter 'appName' at line '7' and 
    column '20' is not provided. Please see https://aka.ms/resource-manager-parameter-files for usage details.'.
    At line:1 char:1
    + New-AzResourceGroupDeployment `
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [New-AzResourceGroupDeployment], Exception
        + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResourceGroupDeploymentCmdlet
     
    New-AzResourceGroupDeployment : The deployment validation failed
    At line:1 char:1
    + New-AzResourceGroupDeployment `
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : CloseError: (:) [New-AzResourceGroupDeployment], InvalidOperationException
        + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResourceGroupDeploymentCmdlet
    

    azuredeploy_webapp.parameter.json:

        {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
            "appName": {
              "value": "ITQIG-eu-web-manju123"
            },
            "kind": {
              "value": "app"
            },
            "location": {
              "value": "west europe"
            },
            "subnetResourceID": {
              "value": "/subscriptions/7e7f55d3-4bfd-a6be-1c59594b8592/resourceGroups/ITQIG-eu-network-dev/providers/Microsoft.Network/virtualNetworks/ITQIG-eu-vnet-dev/subnets/subnet7-AWmanjug"
            },
            "appServicePlanResourceID": {
              "value": "/subscriptions/7e7f55d3-4bfd-a6be-1c59594b8592/resourceGroups/ITQIG-eu-manjug-windows-app/providers/microsoft.web/serverFarms/eu-manjug-windows-plan"
            }
          }
        }
    

    azuredeploy_webapp.json

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "appName": {
          "type": "string",
          "metadata": {
            "description": "The name of the app to create."
          }
        },
        "kind": {
          "type": "string",
          "metadata": {
            "description": "Web app kind. OS type -> Windows / Linux."
          }
        },
        "appServicePlanResourceID": {
          "metadata": {
            "description": "The resource ID of the app service plan."
          },
          "type": "string"
        },
        "location": {
          "type": "string",
          "defaultValue": "[resourceGroup().location]",
          "metadata": {
            "description": "The location in which all resources should be deployed."
          }
        },
        "subnetResourceID": {
          "type": "string",
          "metadata": {
            "description": "The subnet resource ID created for app service plan which contains this web app."
          }
        }
      },
      "resources": [
        {
          "type": "Microsoft.Web/sites",
          "apiVersion": "2019-08-01",
          "name": "[parameters('appName')]",
          "location": "[parameters('location')]",
          "kind": "[parameters('kind')]",
          "properties": {
            "serverFarmId": "[parameters('appServicePlanResourceID')]"
          },
          "resources": [
            {
              "name": "virtualNetwork",
              "type": "networkConfig",
              "apiVersion": "2019-08-01",
              "dependsOn": [
                "[resourceId('Microsoft.Web/sites', parameters('appName'))]"
              ],
              "properties": {
                "subnetResourceId": "[parameters('subnetResourceId')]",
                "swiftSupported": true
              }
            }
          ]
        }
      ]
    }
    
    0 回复  |  直到 4 年前
        1
  •  0
  •   Manjunath Rao    4 年前

    我删除了旧文件,并用相同的内容重新创建了一个新的JSON文件。它现在正在工作。我不知道是什么原因导致了旧文件的问题。。

        2
  •  0
  •   cnitz    4 年前

    问题似乎是您使用的powershell cmdlet参数导致的,而不是模板/参数。请尝试以下操作:

    使用 TemplateParameterFile 而不是 TemplateParameterUri

    使用 TemplateFile 而不是 TemplateUri

    https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azresourcegroupdeployment?view=azps-4.5.0

        3
  •  -1
  •   Llazar    4 年前

    "serverFarmId": "[parameters('appServicePlanResourceID')]" .

    另一个需要修复的问题是参数文件中资源ID的硬编码值。