You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible如何筛选JSON指定层级下含virtualAddresses字段的上层键

调整方案

你需要修改json_query的JMESPath查询逻辑,增加两步操作:先将ACS层级的对象转为键值对数组,再过滤出值对象中包含virtualAddresses字段的项,最后提取对应的键名即可。

首先确认你已经安装了json_query的依赖包:

pip install jmespath

然后修改playbook中Parse json 1任务的查询参数,调整后的完整任务代码如下:

- name : Parse json 1
  debug:
    var: atc_AS3_status.msg.declaration | json_query(query_result)
  vars: 
    query_result: '"ACS-AS3".ACS | items() | [?value.virtualAddresses != null] | [*].key'
  register: atc_AS3_status1

表达式说明

  • items():将ACS层级的JSON对象转为[{"key": "键名", "value": "对应值"}]格式的数组
  • [?value.virtualAddresses != null]:过滤数组中值对象包含virtualAddresses字段的元素
  • [*].key:提取所有过滤后元素的键名,即需要的虚拟服务名称

调整后运行任务的输出结果就是你期望的["vs_ubuntu_22", "vs_ubuntu_443", "vs_ubuntu_80"]。

内容的提问来源于stack exchange,提问作者sundrys1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:24:03