CloudFormation вложенный Sub с FindInMap - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь добиться разрешения переменных, хранящихся в виде строки в 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

В результате я получаю ту же ошибку, что и в первом примере.


Любая помощь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...