如何从ansible中的stdout json获取特定属性值

how to get specific attribute value from stdout json in ansible

instance_tags.stdout 输出看起来像

休闲片段的预期输出是App Server-Development

- name: get instance tags
  win_shell: aws ec2 --region us-east-1 describe-tags \ --filters "Name=resource-id,Values={{instance_id}}"
  register: instance_tags


- name: echo instance tags
  debug:
    msg: "{{instance_tags.stdout | json_query('Tags[?Key==''AMSPatchGroup''].Value')}}"

但实际输出是

你至少需要 instance_tags.stdout | from_json | ... 因为 .stdout 是一个字符串,而不是一个实际的结构

可以通过一个简单的实验看到这种行为,显示 {{ '{"a":"b"}' | json_query("a") }} returns "" 就像您的经验一样,但是 {{ '{"a":"b"}' | from_json | json_query("a") }} 会产生 "b"期待