使用az cli JMESPath筛选嵌套数组提取Key Vault机密操作属性
问题根因
你之前写的查询返回空,是因为命令返回的根结构是单个JSON对象,不是数组。直接在根层级使用数组筛选语法[?...]属于路径写错,自然拿不到结果。
可直接用的解决方案
执行以下命令即可直接筛选出Key Vault密钥相关的操作,自动以表格形式输出操作名和描述:
az provider operation show --namespace Microsoft.KeyVault --query "resourceTypes[?name=='vaults/secrets'].operations[] | [].{操作名称: name, 操作描述: description}" -o table
查询语法说明
resourceTypes[?name=='vaults/secrets']:先定位到根节点下的resourceTypes数组,筛选出name属性为vaults/secrets的密钥资源类型条目.operations[]:提取匹配条目下的operations数组,将嵌套的操作列表展开为一维数组| [].{操作名称: name, 操作描述: description}:对展开后的操作列表做字段投影,只保留需要的name和description字段,同时自定义列名适配表格输出-o table:Azure CLI全局参数,指定输出格式为表格
如果不需要自定义中文列名,也可以用更简短的查询版本:
az provider operation show --namespace Microsoft.KeyVault --query "resourceTypes[?name=='vaults/secrets'].operations[][].[name, description]" -o table
内容的提问来源于stack exchange,提问作者jokarl
相关产品推荐
相关产品推荐

