gpt4 book ai didi

powershell - 部署 ARMtemplate 时如何在 TemplateParameterObject 参数中传递引用

转载 作者:行者123 更新时间:2023-12-03 03:08:24 25 4
gpt4 key购买 nike

执行New-AzureRmResourceGroupDeployment命令时,您可以通过TemplateParameterObject参数传递模板参数。这对于简单的属性和数组非常有用,但我似乎无法让它用于引用。 ARM 模板参数文件中的内容如下所示:

"adminPassword": {
"reference": {
"keyVault": {
"id": "/subscriptions/365d8c14-efa0-437e-a2c8-c3ffc8f6287a/resourceGroups/musw1-prf-jboyd-kv-rg/providers/Microsoft.KeyVault/vaults/musw1-prf-jboyd-kv"
},
"secretName": "adminPassword"
}
}

我已经尝试过这个:

$parameters = @{
adminPassword = @{
reference = @{
keyVault = @{
id = $KeyVaultId
}
secretName = 'adminPassword'
}
}
}

New-AzureRmResourceGroupDeployment `
-ResourceGroupName $ResourceGroupName `
-TemplateFile $TemplateFile `
-TemplateParameterObject $parameters

但我得到的是:

Deployment template validation failed: 'The provided value for the template parameter 'adminPassword' at line '13' and column '27' is not valid.'.

最佳答案

目前,ARM 模板参数中的 Key Vault 引用似乎仅通过参数文件而非参数对象受支持:See here for the issue that's been raised with Microsoft

虽然它不像使用 -TemplateParameterObject 那么友好,但一种允许您在不暴露 Key Vault secret 的情况下编写脚本的解决方法是通过 PowerShell 以编程方式创建和填充 JSON 模板文件,然后将其传递到 New-AzureRmResourceGroupDeployment 中。通过执行此操作,您可以继续间接引用 Key Vault secret ,而无需将其存储在本地或以任何方式将其公开为明文。

关于powershell - 部署 ARMtemplate 时如何在 TemplateParameterObject 参数中传递引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42154787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com