Я пытаюсь запросить AMI AWS EC2 из Ansible, но продолжаю сталкиваться с ошибкой при циклическом просмотре результатов:
- hosts: localhost
tasks:
- name: Get AMI
ec2_ami_facts:
owner: amazon
filters:
architecture: x86_64
root-device-type: ebs
register: amis
- name: return filtered data
debug:
msg: "{{ item }}"
loop: " {{ amis \
| json_query( 'Images[?Description!=`null`] \
| [?starts_with(Description,`Amazon Linux`)]' ) \
}} "
Идея состоит в том, чтобы вернуть документы с изображениями, а затем просто идентификаторы изображений с большей фильтрацией (конечная цель - получить самый последний идентификатор для данного описания). Но с текущим примером и всем остальным, что я пытаюсь, я получаю эту ошибку:
TASK [return filtered data] ****************************************************
fatal: [localhost]: FAILED! => {"msg": "Invalid data passed to 'loop',
it requires a list, got this instead: . Hint: If you passed a
list/dict of just one element, try adding wantlist=True to your lookup
invocation or use q/query instead of lookup."}
Я могу посмотреть на 'amis' полностью, и он выглядит хорошо, но любая попытка фильтрации не удалась. Какой правильный метод?