AWS Cloudformation — как сохранить значение SSM в соответствии с условием

#amazon-cloudformation #aws-ssm

#amazon-cloudformation #aws-ssm

Вопрос:

Я пытаюсь использовать SSM, используя шаблон cloudformation. Однако я не могу понять, как хранить разные значения для каждой среды в зависимости от условия.

Конвейер развертывания кода передает Stage параметр, который я могу использовать, чтобы понять, в какой среде развертывается код.

 Resources:
  SNSTopicName:
    Type: AWS::SSM::Parameter
    Properties:
      Description: SNS Topic Name
      Name: !Sub "/${Stage}/broker_name"
      Type: String
      Value: ""
 

Как мне задать условие для значения на основе Stage переменной

Ответ №1:

Ниже приведен один из способов;

Я предположил, что у вас есть параметр этапа, определенный следующим образом, но если определение / объявление Stage параметра зависит от вас. Это не повлияет / не изменит связанную логику, Broker как показано ниже;

 Parameters:
  Stage:
    Type: String
    AllowedValues:
      - dev
      - tst
      - acc
      - prd
Mappings:
  Common:
    dev:
      Broker: Development
    tst:
      Broker: Test
    acc:
      Broker: Acceptance
    prd:
      Broker: Production

SNSTopicName:
  Type: AWS::SSM::Parameter
  Properties:
    Description: SNS Topic Name
    Name: !Sub "/${Stage}/broker_name"
    Type: String
    Value: !FindInMap
      - Common
      - !Ref "Stage"
      - Broker
 

Где общим является map с его ключом в качестве значения вашего параметра Stage, а значением является брокер