0

我目前正在尝试过滤特定tag值包含匹配值的位置,但是az resource list --query ""似乎不喜欢我正在做的事情。

我正在执行的示例如下:

az resource list \
--resource-group "${resource_group}" \
--location "${location}" \
--query "[?contains(tags.Schedule, 'NOT_SET')].name

根据以上内容,您可以看到Schedule资源上调用了一个标签,我正在尝试识别哪些 Azure 资源的标签值为NOT_SET.

当不尝试在contains不是子对象的输入数据上使用该函数时,这非常有效,例如以下非常有效:

az resource list \
--resource-group "${resource_group}" \
--location "${location}" \
--query "[?contains(name, 'myvm')].name

我浏览了 JMESPath 文档,该文档没有显示我在这里使用的特定案例。在谷歌上也有一些跑来跑去确定了一些可能性,例如;Azure Citadel - CLI 2.0 JMESPATH,它确实给出了不同类型查询的示例

az vm list --show-details --output json --query "[?ends_with(storageProfile.osDisk.managedDisk.storageAccountType, 'LRS')]"

这实际上有效,但是它与我正在查询az vm list的相反。az resource list

任何额外的见解或正确方向的指针将不胜感激

4

1 回答 1

2

在示例中添加符号[ ]时,您可以按预期运行命令。正确它应该是这样的:

az resource list \
--resource-group "${resource_group}" \
--location "${location}" \
--query "[?contains([tags.Schedule], 'NOT_SET')].name"

我实验室的输出如下:

在此处输入图像描述

于 2018-07-16T10:20:19.750 回答