代码之家  ›  专栏  ›  技术社区  ›  Steztric

Test AzureRmResourceGroupDeployment使用TemplateParameterFile,但不使用TemplateParameterObject

  •  0
  • Steztric  · 技术社区  · 7 年前

    Test-AzureRmResourceGroupDeployment cmdlet来测试它。以下工程;

    Test-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile 'template.json' -TemplateParameterFile 'parameters.json'
    

    然而,当我加载参数并传递对象时,它不起作用;

    $params = Get-Content 'parameters.json' | Out-String | ConvertFrom-Json | ConvertPSObjectToHashtable
    Test-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile 'template.json' -TemplateParameterObject $params.parameters
    

    这个 ConvertPSObjectToHashtable 函数是我得到的 from here

    当我运行第二个命令时,我得到以下错误;

    Code    : InvalidTemplate
    Message : Deployment template validation failed: 'The provided value for the template parameter 'location' at line '7' and column '22' is not valid.'.
    Details : 
    

    为什么它不接受parameters对象,我该如何修复它?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Shui shengbao    7 年前

       "adminUsername": {
          "value": "ghuser"
        },
    

    "adminUsername":"ghuser"
    

    如果您将以下参数转移到 - TemplateParameterObject ,工作正常。

    PS D:\compare> $parms
    
    Name                           Value
    ----                           -----
    adminPassword                  ********
    dnsLabelPrefix                 shuitest123
    adminUsername                  shui
    

    $params.parameters 如下所示:

    PS D:\compare> $params.parameters
    
    Name                           Value
    ----                           -----
    adminPassword                  {value}
    dnsLabelPrefix                 {value}
    adminUsername                  {value}
    

    adminUsername:shui 或修改json文件,如 "adminUsername":"ghuser"