use*_*520 3 azure azure-resource-manager azure-rm-template
我正在寻找通过参数名称访问 ARM 模板对象属性的方法。
在下面的例子中,
parameters: {
"propertyName": {
"type": "string"
}
}
variables: {
"object": {
"value": {
"color": "red"
}
}
}
Run Code Online (Sandbox Code Playgroud)
其中 [parameters("propertyName")] 是颜色
以下在 ARM 模板部署中是否有效?或者有没有办法实现类似的事情?
"[variables('object')].[parameters('propertyName')]"
Run Code Online (Sandbox Code Playgroud)
我希望上面一行的输出为“红色”。
任何帮助表示赞赏!:)
以下是如何使用parameters值来选择变量中对象的属性。
"value": "[variables('objects')[parameters('propertyName')].color]"
Run Code Online (Sandbox Code Playgroud)
一个完整的例子:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"propertyName": {
"type": "string"
}
},
"variables": {
"objects": {
"property0": {
"color": "red"
},
"property1": {
"color": "green"
},
"property2": {
"color": "blue"
}
}
},
"resources": [],
"outputs": {
"messageOutObject": {
"type": "object",
"value": "[variables('objects')]"
},
"messageOutObjectProperty": {
"type": "string",
"value": "[variables('objects')[parameters('propertyName')].color]"
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后您可以通过传入不同的参数值来选择不同的属性。例如:
New-AzResourceGroupDeployment -ResourceGroupName 'DeleteMe20190605' -TemplateFile .\azuredeploy.json -TemplateParameterObject @{propertyName = 'property1'}
Run Code Online (Sandbox Code Playgroud)
或者
New-AzResourceGroupDeployment -ResourceGroupName 'DeleteMe20190605' -TemplateFile .\azuredeploy.json -TemplateParameterObject @{propertyName = 'property2'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |