从 ec2 创建寄存器中提取volume_id



我需要从 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')

最新更新