我需要从 EC2 创建调用的寄存器返回中提取 EBS 卷 ID。 我已经把它归结为一个夹头,它保存了我想要的数据,但最后一步躲开了我。
我尝试过用:
- set_fact:
volume_id_list: "{{ devices | json_query('[*].volume_id') }}"
- debug: var=volume_id_list
它返回一个空字符串。
"devices": {
"/dev/sdf": {
"delete_on_termination": true,
"status": "attached",
"volume_id": "vol-0b2c92cdcblah"
},
"/dev/xvda": {
"delete_on_termination": true,
"status": "attached",
"volume_id": "vol-086a722c4blah"
}
}
我想看到的是这样的:
"vol-0b2c92cdcblah"vol-086A722C4Blah">
json_query
中的 jmespath 表达式与数据结构中的任何内容都不匹配。所以空字符串是一个完全正确的结果:)
现在,要从当前数据结构中获取所需的内容,您需要更改查询:json_query('*.volume_id')