CloudFormation使用FindInMap嵌套Sub

时间:2018-12-12 10:43:22

标签: amazon-ec2 amazon-cloudformation

我要实现的目标是解析以字符串形式存储在映射中的变量。

Mappings:
  Constants: 
    UserDataTest:
      Test: "echo ${NestedVariable}\n"

我想在 UserData 中解决它。

  UserData: !Base64
    Fn::Join:
      - ''
      - - "#!/bin/bash\n"
        - Fn::Sub: 
          - !FindInMap [Constants, UserDataTest, Test]
          - NestedVariable: xyz

上面的示例不能用作 Fn :: Sub 中的第一个参数。

  

调用CreateStack时发生错误(ValidationError)   操作:模板错误:一个或多个Fn :: Sub内部函数   不要指定期望的参数。指定一个字符串作为第一个参数,   和一个可选的第二个参数,用于指定值到   替换为字符串


尝试了类似的方法,但仍然无法解析嵌套变量:

 - Fn::Sub: 
   - ${TestValue}
   - { NestedVariable: xyz, TestValue: !FindInMap [Constants, UserDataTest, Test] }

其结果将是:

  

回显$ {NestedVariable}


尝试这种方式似乎也很合理:

- Fn::Sub: 
  - Fn::Sub: 
    - ${TestValue}
    - TestValue: !FindInMap [Constants, UserDataTest, Test]
  - NestedVariable: xyz

结果,我得到了与第一个示例相同的错误。


任何帮助将不胜感激!

0 个答案:

没有答案