【问题标题】:Test-AzureRmResourceGroupDeployment works with TemplateParameterFile but not TemplateParameterObjectTest-AzureRmResourceGroupDeployment 适用于 TemplateParameterFile 但不适用于 TemplateParameterObject
【发布时间】:2017-07-06 09:06:31
【问题描述】:

我正在尝试在 powershell 脚本中覆盖模板参数文件中的一些属性,然后将对象传递给 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 : 

为什么不接受参数对象,我该如何解决?

【问题讨论】:

    标签: powershell azure powershell-cmdlet


    【解决方案1】:

    我在我的实验室进行测试,我得到了与您相同的错误日志。根本原因是 Azure json 模板如下:

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

    如果 json 模板如下所示,则该功能将起作用。

    "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}
    

    您需要做的是将Azure参数json文件转换为adminUsername:shui或修改json文件如"adminUsername":"ghuser"

    【讨论】:

    • 嗯,好的。感谢您的提示。不幸的是,-TemplateParameterObject 没有很好的记录。您的建议可能不适用于作为对密钥保管库机密的引用传递的密码。我总是可以试一试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2020-11-23
    相关资源
    最近更新 更多