如何使用列表选项和JMESPath(az-cli)检测资源是否存在?

时间:2020-07-31 11:11:12

标签: powershell azure-cli jmespath

如果给定查询返回任何结果并根据该分支进行分支,我将尝试进行技术分析。我正在使用PowerShell,并且有效

(az network vnet list --query "[?name=='testvnet']" | ConvertFrom-Json).Length

但是后来我想知道JMESPath是否可以实现这一点,并尝试了

az network vnet list --query "length([?name=='testvnet'])"

,但似乎无法使用JMESPath。还是有办法吗?

根据https://jmespath.readthedocs.io/en/stable/specification.html#length上的文档,有一个名为length的函数,据我了解它可以这样工作。

此特定示例的错误是

az : az network vnet list: error: argument --query: invalid jmespath_type value: "length([?name=='testvnet']"
At line:1 char:1
+ az network vnet list --query "length([?name=='testvnet'])"

错误消息中缺少结尾括号是可疑的。这可能是由于在PowerShell控制台中使用了az cli

1 个答案:

答案 0 :(得分:2)

您快到了。试试

az network vnet list --query "[?name == 'testvnet'] | length(@)"