我正在尝试构建一个 ECS (Fargate) 任务定义,该定义使用传递给命令的可变数量的环境变量。每个变量名称都与 SecretsManager 中的一个秘密相匹配。
我无法以有意义的方式组合这些功能。以下代码只是将所有变量作为字符串列表传递给 Command。
SpecEnvVars:
Type: CommaDelimitedList
Default: "greeting,name,title,rank"
Description: |
The Environmental Variables to pull into the container, defined by their
associated Secrets names
ContainerDefinitions:
- Name: !Ref 'ServiceName'
Command: !Split
- ','
- !Join
- ','
- !Ref SpecEnvVars
但是,我需要将列表中的项目解析为机密 JSON。解决秘密的方法如下:
!Sub '{{resolve:secretsmanager:test/${greeting}}}'
如何将 Fn::Sub 与 Split/Join 集成以返回 SecretsManager JSON 字符串列表?
我花了一段时间才找到正确的函数组合,但我做到了:
ContainerDefinitions:
- Name: !Ref 'ServiceName'
Command: !Split
- ','
- !Sub
- '{{resolve:secretsmanager:test/${inner}}}'
- inner: !Join
- '}},{{resolve:secretsmanager:test/'
- Ref: "SpecEnvVars"
我想对这个答案给予支持:https://stackoverflow.com/a/50060983/9671763 https://stackoverflow.com/a/50060983/9671763因为它实际上给了我答案——我只需要根据我的用例进行调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)