我正在尝试查找所有具有 2 个内核的虚拟机:
$ az vm list-sizes -o json --query "[?numberOfCores == 2]"
az vm list-sizes: error: argument --query: invalid query value: '[?numberOfCores == 2]'
由于我怀疑az
命令有错误,我直接安装了jp,但它也给出了一个错误:
$ az vm list-sizes -o json | jp "[?numberOfCores == 2]"
SyntaxError: Invalid token: tNumber
[?numberOfCores == 2]
在jmespath 规范中,看起来我必须使用反引号`
字符,但它没有给出错误,而是没有结果:
$ az vm list-sizes -o json | jp '[?numberOfCores == `2`]'
[]
这是我试图过滤的(缩写)返回的 json:
$ az vm list-sizes -o json | head -n 20
[
{
"maxDataDiskCount": 4,
"memoryInMb": 123,
"name": "Standard_DS1",
"numberOfCores": 1,
"osDiskSizeInMb": 456,
"resourceDiskSizeInMb": 789
},
{
"maxDataDiskCount": 8,
"memoryInMb": 123,
"name": "Standard_DS2",
"numberOfCores": 2,
"osDiskSizeInMb": 456,
"resourceDiskSizeInMb": 789
}
]
(我混淆了尺寸,因为我不想被 MS 起诉分享商业机密或其他东西)