Saya memiliki tugas Ansible yang membuat permintaan URI ke situs web untuk mendapatkan respons JSON. Saya ingin Dapat melakukan sesuatu jika variabel JSON bersarang didefinisikan, dan sesuatu yang lain jika tidak.
- name: Get JSON from the Interwebs
uri: url="http://whatever.com/jsonresponse" return_content=yes
register: json_response
- name: Write nested JSON variable to disk
copy: content={{json_response.json.nested1.nested2}} dest="/tmp/foo.txt"
Perhatikan bahwa menggunakan ignore_errorshanya berfungsi untuk perintah tugas gagal, bukan untuk memeriksa nilai yang tidak ditentukan dalam struktur data bersarang dalam template Jinja. Jadi, jika json_response.json.nested1.nested2tidak didefinisikan, tugas ini masih akan gagal meskipun ignore_errors=yestelah ditetapkan.
Bagaimana caranya agar buku pedoman ini menyimpan beberapa nilai default /tmp/foo.txtjika permintaan gagal, atau jika permintaan tidak memiliki nilai bersarang yang ditentukan?
$keybidang dalam respons - yaitu sesuatu yangdefaultmungkin berguna untuk filter jinja .