【问题标题】:Sub and Join on Comma-Delimited ListSub 和 Join 逗号分隔列表
【发布时间】:2019-01-28 10:24:54
【问题描述】:

我正在尝试构建一个 ECS (Fargate) 任务定义,它使用传递给 Command 的可变数量的环境变量。每个变量名称都与 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 字符串列表?

【问题讨论】:

    标签: amazon-cloudformation


    【解决方案1】:

    我花了一段时间才找到正确的函数组合,但我做到了:

    ContainerDefinitions:
      - Name: !Ref 'ServiceName'
        Command: !Split
          - ','
          - !Sub
            - '{{resolve:secretsmanager:test/${inner}}}'
            - inner: !Join
              - '}},{{resolve:secretsmanager:test/'
              - Ref: "SpecEnvVars"
    

    我想为这个答案提供支持:https://stackoverflow.com/a/50060983/9671763 因为它实际上给了我我的答案 - 我只需要根据我的用例调整它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 2020-11-05
      • 2015-07-30
      • 1970-01-01
      • 2015-09-05
      • 1970-01-01
      相关资源
      最近更新 更多