Я пытаюсь добиться разрешения переменных, хранящихся в виде строки в Mappings .
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 будет String.
Произошла ошибка (ValidationError) при вызовеоперация CreateStack: Ошибка шаблона: одна или несколько встроенных функций Fn :: Sub не указывают ожидаемые аргументы.Укажите строку в качестве первого аргумента и необязательный второй аргумент для указания сопоставления значений для замены в строке
Попробовал что-то вроде этого, но он все равно не разрешит вложенную переменную:
- Fn::Sub:
- ${TestValue}
- { NestedVariable: xyz, TestValue: !FindInMap [Constants, UserDataTest, Test] }
Результатом этого будет:
echo $ {NestedVariable}
Также было бы разумно попробовать сделать так:
- Fn::Sub:
- Fn::Sub:
- ${TestValue}
- TestValue: !FindInMap [Constants, UserDataTest, Test]
- NestedVariable: xyz
В результате я получаю ту же ошибку, что и в первом примере.
Любая помощь будет принята с благодарностью!