我在 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 模板不提供相当于“开关”的机制,而这可能会使这变得更容易。但是,您可以嵌套多个 if
语句。语法有点笨拙,但这应该与您编写的代码等效:
"value": "[if(equals(resourceGroup().location,'uksouth'), 'UKS', [if(equals(resourceGroup().location,'ukwest'), 'UKE', [if(equals(resourceGroup().location,'IndiaWest'), 'INDW', 'INDS')])])]"
下面是相同的代码,但应用了一些格式,以使这里发生的情况更加明显:
"value": "
[if(equals(resourceGroup().location,'uksouth'),
'UKS',
[if(equals(resourceGroup().location,'ukwest'),
'UKE',
[if(equals(resourceGroup().location,'IndiaWest'),
'INDW',
'INDS')])])]
"
您还可以考虑 this answer 中描述的方法寻求更清洁的解决方案。
关于azure-devops - 如何在ARM模板azure中使用if else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69899202/