【问题标题】:Why does this Azure CLI boolean property query seem to be backwards?为什么此 Azure CLI 布尔属性查询似乎是倒退的?
【发布时间】:2019-11-06 19:00:05
【问题描述】:

我正在编写一个简单的 az 命令来返回 AKS 的默认版本。我尝试了以下几种变体,但返回的结果集与我所追求的相反。关于 JSON 中的 JMESPath 过滤器表达式和布尔值,我是否遗漏了什么?

我原以为这两个命令应该只返回“默认”版本。相反,它们会返回除默认值之外的所有值。

az aks get-versions -l $region --query "orchestrators[?default==true].[orchestratorVersion,default]" -o table

az aks get-versions -l $region --query "orchestrators[?default==true].{Version:orchestratorVersion,IsDefault:default}" -o table

最后我改用了 !=null 过滤器,但想知道答案。

没有过滤的数据

az aks get-versions -l $region --query "orchestrators[].{Version:orchestratorVersion,IsDefault:default}" -o json 

如下:

[
  {
    "IsDefault": null,
    "Version": "1.10.12"
  },
  {
    "IsDefault": null,
    "Version": "1.10.13"
  },
  {
    "IsDefault": null,
    "Version": "1.11.9"
  },
  {
    "IsDefault": null,
    "Version": "1.11.10"
  },
  {
    "IsDefault": null,
    "Version": "1.12.7"
  },
  {
    "IsDefault": null,
    "Version": "1.12.8"
  },
  {
    "IsDefault": null,
    "Version": "1.13.11"
  },
  {
    "IsDefault": true,
    "Version": "1.13.12"
  },
  {
    "IsDefault": null,
    "Version": "1.14.7"
  },
  {
    "IsDefault": null,
    "Version": "1.14.8"
  },
  {
    "IsDefault": null,
    "Version": "1.15.4"
  },
  {
    "IsDefault": null,
    "Version": "1.15.5"
  }
]

【问题讨论】:

    标签: json bash azure-cli jmespath azure-cloud-shell


    【解决方案1】:

    这是JEMSPATH中的一条规则,你可以看到描述here,就是document的Raw类型。它显示如下:

    PowerShell 和 Shell 之间也有区别。

    在 PowerShell 中,您可以像这样在命令中使用“``”:

    az aks get-versions -l $region --query "orchestrators[?default == ``true``].[orchestratorVersion,default]" -o table
    

    但在 Shell 中,您需要使用“`”并进行如下更改:

    az aks get-versions -l $region --query 'orchestrators[?default == `true`].[orchestratorVersion,default]' -o table
    

    【讨论】:

    • 谢谢。我确实阅读了 JMESPath 文档,并认为我已经尝试了所有排列!没有意识到在 Bash 中使用双引号会搞砸一切,并且从未尝试过 PowerShell。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 2011-05-07
    • 1970-01-01
    • 2011-06-07
    相关资源
    最近更新 更多