Amazon cloudformation 映射到CloudFormation中字符串的自定义下拉列表值

Amazon cloudformation 映射到CloudFormation中字符串的自定义下拉列表值,amazon-cloudformation,Amazon Cloudformation,我不熟悉云计算模板。我想创建一个下拉列表参数,其值为“Small”、“Medium”和“Big”。选择后,Small必须映射到“t2.micro”,Medium映射到“t2.Medium”,Big映射到“t2.large” 我知道我可以直接下拉像“t2.micro”这样的值,但我希望有用户友好的选项,映射到确切的实例类型字符串 以下是我到目前为止的情况: Resources: MicroInstance: Type: AWS::EC2::Instance Properties

我不熟悉云计算模板。我想创建一个下拉列表参数,其值为“Small”、“Medium”和“Big”。选择后,Small必须映射到“t2.micro”,Medium映射到“t2.Medium”,Big映射到“t2.large”

我知道我可以直接下拉像“t2.micro”这样的值,但我希望有用户友好的选项,映射到确切的实例类型字符串

以下是我到目前为止的情况:

Resources:
  MicroInstance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref InstanceType
      KeyName: ec2kp
      ImageId: ami-081c1b4c6y2d4594e
Parameters:
  InstanceType: 
    Description: 'Size of instance'
    Type: String
    Default: 'Small(Use for Dev)'
    AllowedValues: [Small(Use for Dev), Medium(Use For Test), Big(Use For Prod)]

您最好的选择是使用
映射
,您可以有这样的功能

Parameters:
  InstanceType: 
    Description: 'Size of instance'
    Type: String
    Default: 'Small(Use for Dev)'
    AllowedValues: [Small(Use for Dev), Medium(Use For Test), Big(Use For Prod)]

Mappings:
  InstanceType:
    "Small(Use for Dev)":
      value: "t2.micro"
    "Medium(Use For Test)":
      value: "t2.medium"
    "Big(Use For Prod)":
      value: "t2.large"

Resources:
  MicroInstance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !FindInMap
        - InstanceType
        - !Ref InstanceType
        - value
      KeyName: ec2kp
      ImageId: ami-081c1b4c6y2d4594e
关键是要使用具有以下语法的函数
!FindInMap
!FindInMap[MapName,TopLevelKey,SecondLevelKey]

和中的一些参考


希望它有帮助

您最好的选择将是使用
映射
,您可以有这样的功能

Parameters:
  InstanceType: 
    Description: 'Size of instance'
    Type: String
    Default: 'Small(Use for Dev)'
    AllowedValues: [Small(Use for Dev), Medium(Use For Test), Big(Use For Prod)]

Mappings:
  InstanceType:
    "Small(Use for Dev)":
      value: "t2.micro"
    "Medium(Use For Test)":
      value: "t2.medium"
    "Big(Use For Prod)":
      value: "t2.large"

Resources:
  MicroInstance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !FindInMap
        - InstanceType
        - !Ref InstanceType
        - value
      KeyName: ec2kp
      ImageId: ami-081c1b4c6y2d4594e
关键是要使用具有以下语法的函数
!FindInMap
!FindInMap[MapName,TopLevelKey,SecondLevelKey]

和中的一些参考

希望能有帮助