Ansible 将字典键转换为大写

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的键也是小写的。

我有一些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
因此,destination
env
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  

非常感谢!很好用!