Ansible 将字典键转换为大写
我有一些ansible automation,它部署了aws lambda函数。在某些情况下,我使用以下语法:Ansible 将字典键转换为大写,ansible,Ansible,我有一些ansible automation,它部署了aws lambda函数。在某些情况下,我使用以下语法: env: "{{ l_common_env_vars | combine(l_per_env_vars) }}" 使用给定函数的环境变量创建dict。问题在于l_common_env_vars和l_per_env_vars源字典的内容具有小写键,例如: redis_url: some_url 因此,destinationenvdictionary的键也是小写的。
env: "{{ l_common_env_vars | combine(l_per_env_vars) }}"
使用给定函数的环境变量创建dict。问题在于l_common_env_vars
和l_per_env_vars
源字典的内容具有小写键,例如:
redis_url: some_url
因此,destinationenv
dictionary的键也是小写的。
我希望所有提到的键都是大写的:
REDIS_URL: some_url
我试图使用{{env|upper}}
但它改变了键及其值的大小写,这不是我需要的:
REDIS_URL: SOME_URL
是否有任何方法可以将env
字典的键转换为仅大写
提前感谢您的帮助
致以最良好的祝愿,
Rafal.下面演示的想法是使用大写dict键(使用
map
)的zip
创建元组,并使用items2dict
重构dict的值
以下剧本:
---
-名称:Upcase dict keys
主机:本地主机
收集事实:错误
变量:
有人说:
redis_url:https://www.test.tld/
some_other_键:其他值
一些上级命令:>-
{{
一些dict.keys()| map('upper'))
|zip(一些默认值())
|items2dict(key\u name=0,value\u name=1)
}}
任务:
-名称:显示结果
调试:
msg:{{一些上命令}}”
给出:
PLAY [Upcase dict keys] ****************************************************************************************************************************************************************************************************************
TASK [Show results] ********************************************************************************************************************************************************************************************************************
ok: [localhost] => {
"msg": {
"REDIS_URL": "https://www.test.tld/",
"SOME_OTHER_KEY": "other value"
}
}
PLAY RECAP *****************************************************************************************************************************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
非常感谢!很好用!