Подставить StackName к ресурсам Cloudformation - PullRequest
1 голос
/ 15 апреля 2019

Я хочу иметь несколько стеков на основе одного шаблона CloudFormation, но у меня возникают конфликты имен. Казалось бы, простейшим способом решения этой проблемы является добавление (или добавление) StackName к каждому из повторяющихся ресурсов, например, мои лямбда-функции или роли.

AWS говорит о AWS::StackName в разделе «Ссылка на шаблон» документации , но нет четкой демонстрации того, как это сделать.

Как добавить StackName к ресурсу CloudFormation?

MyLambdaFunction
  Type: "AWS:Serverless::Function"
  Properties:
    FunctionName: AWS::StackName + "-myLambdaFunction"

Ответы [ 2 ]

5 голосов
/ 15 апреля 2019

Я предпочитаю использовать Fn :: Sub , потому что считаю, что его легче читать, чем альтернативы:

"RoleName": { "Fn::Sub" : "${AWS::StackName}-InstanceRole" },
2 голосов
/ 15 апреля 2019

Вам необходимо Ref псевдопараметр и использовать метод Fn::Join для создания имени

MyLambdaFunction
  Type: "AWS:Serverless::Function"
  Properties:
    FunctionName: !Join [ "", [ {"Ref": "AWS::StackName"}, "-myLambdaFunction" ]]
...