azure-devops - 如何在ARM模板azure中使用if else
问题描述
我在 c# 中创建了示例函数,它根据参数设置位置值。我想使用 arm 模板样式格式编写下面的表达式。
public static Main(string name)
{
string location = string.Empty;
if(name == "uksouth")
{
location = "UKS";
}else if(name == "ukwest")
{
location = "UKE";
}else if(name == "IndiaWest")
{
location = "INDW";
}
else {
location = "INDS";
}
}
我已经为一个匹配条件编写了这个,但我想根据用户资源组返回值。
"value": "[if(equals(resourceGroup().location,'uksouth'), 'UKS', 'EUS')]"
解决方案
尝试定义一个变量,它是一个像哈希表一样使用的对象。通过键名从对象中检索不同的属性,以键值对的形式访问属性。我在我的 ARM 模板中使用了与查找值非常相似的东西。
"variables" {
"locationShorten": {
"uksouth": "UKS",
"ukwest": "UKE",
"IndiaWest": "INDW",
"IndiaSouth": "INDS"
},
"locationShort": "[variables('locationShorten')[resourceGroup().location]]"}
Microsoft 将对象的属性定义为键值对。“对象中的每个属性都由键和值组成。键和值用双引号括起来,并用冒号 (:) 分隔。” 来源:https ://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/data-types#objects
至于用于[]
访问对象属性的文档,我再也找不到 JSON 了,但 BICEP 有。“您还可以使用 [] 语法来访问属性。” 来源:https ://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/data-types#objects
推荐阅读
- c - 设置文件访问时间、修改时间
- sql - SQL 计算一个月的天数,不包括周末和节假日
- php - Facebook 图表仅返回 id
- javascript - 升级全日历?
- flutter - 如何在 DataTable 小部件中滚动 DataRow 项目
- vue.js - 基于插件值的 Vue 计算属性
- regex - 正则表达式:匹配最后一个字符串,直到出现另一个字符串(如果出现)
- python - tf.data.Dataset.window 和 tf.train.SequenceExample
- php - 我想使用 Zend 框架 2 在同一表单上的 2 个不同路径上上传 2 个文件
- java - 方法 println(Object...) 的最后一个参数的类型 int[][] 与 vararg 参数类型不完全匹配