azure - ARM模板中的Concat对象和字符串
问题描述
我有一个 parameters.json 文件,它是一个包含不同环境的应用程序设置的对象。所以,它看起来像这样:
"parameters": {
"applicationSettings": {
"value": {
"CI": {
"setting1": "asdf"
},
"DEV": {
"setting1": "1234"
}
}
}
}
在模板文件中,我有一个名为“applicationSettings”的参数,它是参数文件中的对象。在模板文件中,我还有一个名为“deploymentEnvironment”的参数,它定义了将模板部署到哪个环境。因此,当我使用 applicationSettings 部署函数应用程序时,我只需要获取 CI 环境的这些设置,例如。
我试过这个:
[concat('parameters(''applicationSettings'').', parameters('deploymentEnvironment'))]
但是发生了部署错误:
{
"ErrorEntity": {
"ExtendedCode": "51008",
"MessageTemplate": "The parameter {0} has an invalid value.",
"Parameters": [
"properties"
],
"Code": "BadRequest",
"Message": "The parameter properties has an invalid value."
}
}
如何在 parameters.json 文件中引用对象的属性,以便可以根据 deploymentEnvironment 参数提取特定的应用程序设置?
解决方案
你需要使用[]
符号:
"[parameters('applicationSettings')[parameters('deploymentEnvironment')]]"
附言。您也可以将它们结合起来:
"[parameters('applicationSettings')[parameters('deploymentEnvironment')].property[xxx]]"
"[parameters('applicationSettings').property[xxx][parameters('deploymentEnvironment')]]"
推荐阅读
- mysql - 创建一个列是表中其他三个列的平均值 - SQL
- sql - 多个平均值的四舍五入和压缩平均值?
- javascript - 什么是 favicon.ico,为什么我的服务器会尝试与它建立连接?
- go - Go Coverage 不包括其他包中的功能
- python - Python,JSON数据的递归函数在输出中缺少值
- php - mysqli_num_rows 生成无限量的数据
- amazon-cognito - 没有 AccessToken 的 AWS Cognito 中的 GetUserAttributeVerificationCode
- ios - 在 MapView (Swift) 中单击 MKPlacemark 时如何调用函数?
- ruby-on-rails - Couldn't find Category without an ID for Rails Blog
- ios - 快速删除结构数组