Как вы подставили переменные в строку в yaml? - PullRequest
0 голосов
/ 03 октября 2019

Это мой текущий параметр, с которым я работаю для AWS Cloudformation.

ScheduleExpression: "rate(5 minutes)"

Я хочу, чтобы "5" был параметризован для сопоставления, которое я создал !FindInMap [ QuiesceLambda, LambdaEvaluationPeriodMin ]

Это не похоже на работу. У кого-нибудь есть понимание? ScheduleExpression: "rate(${!FindInMap [ QuiesceLambda, LambdaEvaluationPeriodMin ]} minutes)"

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Предположим, у вас есть отображение типа

Mappings:
  AnyName:
    QuiesceLambda: 
       LambdaEvaluationPeriodMin: 5

Чтобы использовать 5 на карте и определить строку скорость (5 минут) , вы можете использовать Join.

ScheduleExpression: !Join
                    - ''
                    - - 'rate('
                      - !FindInMap ['AnyName', 'QuiesceLambda', 'LambdaEvaluationPeriodMin']
                      - ' minutes)'

Примечание :! FindInMap принимает 3 аргумента, а не 2.

0 голосов
/ 03 октября 2019

Это должно работать с использованием !Join и без ${}

ScheduleExpression: !Join ["rate (", !FindInMap [ QuiesceLambda, LambdaEvaluationPeriodMin ], " minutes)"]

Я не проверял это, поэтому вам, возможно, придется немного его настроить

...