Amazon cloudformation AWS Cloudformation-如何根据条件存储SSM值

Amazon cloudformation AWS Cloudformation-如何根据条件存储SSM值,amazon-cloudformation,aws-ssm,Amazon Cloudformation,Aws Ssm,我正在尝试使用cloudformation模板使用SSM。但是,我无法找出如何根据条件存储每个环境的不同值 代码部署管道传递Stage参数,我可以使用该参数了解代码部署到的环境 Resources: SNSTopicName: Type: AWS::SSM::Parameter Properties: Description: SNS Topic Name Name: !Sub "/${Stage}/broker_name"

我正在尝试使用cloudformation模板使用SSM。但是,我无法找出如何根据条件存储每个环境的不同值

代码部署管道传递Stage参数,我可以使用该参数了解代码部署到的环境

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

如何根据
阶段
变量

设置值的条件以下是其中一种方法

我假设您有如下定义的Stage参数,但如果
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参数的值,值为Broker

以下是一种方法

我假设您有如下定义的Stage参数,但如果
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
其中,Common是map,其键作为Stage参数的值,值为Broker