我目前正在尝试过滤特定的tag
包含值匹配项的位置,但是az resource list --query ""
似乎不喜欢我在做什么。
下面是我正在执行的示例:
az resource list \
--resource-group "${resource_group}" \
--location "${location}" \
--query "[?contains(tags.Schedule, 'NOT_SET')].name
根据上述内容,您可以看到资源上有一个名为Schedule
的标记,并且我正在尝试识别哪些标记值为NOT_SET
的Azure资源。
当不尝试对不是子对象的输入数据使用contains
函数时,此方法可以很好地工作,例如,以下方法可以很好地工作:
az resource list \
--resource-group "${resource_group}" \
--location "${location}" \
--query "[?contains(name, 'myvm')].name
我已经阅读了JMESPath文档,该文档没有显示我正在使用的特殊情况。在Google上跑来跑去也发现了一些可能性,例如; 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
上。
我们将不胜感激任何其他见解或正确方向的指点