我正在尝试构建使用传递给Command的可变数量的环境变量的ECS(Fargate)任务定义。每个变量名称都与SecretsManager中的一个秘密匹配。
我很难以有意义的方式组合这些功能。下面的代码只是将所有变量作为字符串列表传递给Command。
public YourActivity extends AppCompatActivity implements ReceiverCallback{
// Your Activity code
public void updateUI() { //<-- You want this to get Triggered
// Update UI code
}
@Override
public void doSomething(Object object){
updateUI(); //<-- Callback does that
}
}
但是,我需要将列表中的项目解析为JSON机密。解决秘密的方法如下:
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
如何将Fn :: Sub与Split / Join集成在一起以返回SecretsManager JSON字符串列表?
答案 0 :(得分:2)
我花了一段时间才找到正确的功能组合,但我做到了:
ContainerDefinitions:
- Name: !Ref 'ServiceName'
Command: !Split
- ','
- !Sub
- '{{resolve:secretsmanager:test/${inner}}}'
- inner: !Join
- '}},{{resolve:secretsmanager:test/'
- Ref: "SpecEnvVars"
我想为这个答案提供支撑:https://stackoverflow.com/a/50060983/9671763,因为它实际上给了我答案-我只需要针对我的用例进行调整即可。