我要实现的目标是解析以字符串形式存储在映射中的变量。
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
结果,我得到了与第一个示例相同的错误。
任何帮助将不胜感激!