如何在Azure工作簿中具有条件参数值?
我想有一个参数叫做环境。它有一些文本值。例如,它有两个值test
和production
。
此外,我还想使用另外两个参数:订阅和app_insights。
现在,我想根据环境参数值自动选择subscription和app_insights值。
因此,当环境参数为test
时,我是如何尝试为subscription参数选择测试订阅的:
summarize by subscriptionId
| project subscriptionId=strcat("/subscriptions/", subscriptionId),
selected = case("{environment}" == "test" and subscriptionId == "test subscription id", true, false)
字符串
的数据
但似乎环境参数并没有取代"{environment}"
占位符。如果我删除"{environment}" == "test"
检查,那么测试订阅将如预期的那样被选中。
如何使用一个参数来决定另一个参数的值?有没有更好的方法来实现我想要的?最好我还希望subscription和app_insights参数不显示给工作簿的用户,并防止他们被手动编辑。
1条答案
按热度按时间ahy6op9u1#
这是100%支持的。
参数必须在引用之前声明,然后参数可以从左到右引用,就像代码一样。顺序在步骤和参数中都很重要。
如果您在Azure Monitor中的工作簿中打开“Resource Picker”示例:
的数据
如果您查看此处resources参数的确切查询,其查询文本为:
字符串
在这里您可以看到
ResourceGroups
参数和ResourceTypes
参数都在查询中被引用,并在查询时被替换。在ARG查询的订阅字段中选择Subscriptions
参数。如果一个参数在查询中没有被替换,那么这个参数在查询之前就不存在(或者这个参数没有被标记为必需的并且没有值,所以它被替换为一个空字符串)。
编辑查询步骤时,该步骤右上角的工具栏中有一个项目,用于打开查询,并在相应的视图(资源图形浏览器刀片、日志查询刀片或ADX查询站点等)中替换所有参数,以便您可以确切地查看参数是如何被替换的。