首页 > 解决方案 > 在 Cloudformation 中使用地图来定义静态开发和产品配置?

问题描述

我想为我的所有部署提供一个模板。

我希望在同一个模板中定义我的 dev 和 prod 配置。

当我调用模板时,我为 dev 或 prod 传递了一个参数,而 cloudformation 使用 dev 或 prod 映射的变量——这可能吗?

我可以看到它的支持地图,但我不确定如何用它来实现我想要的: https ://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html

有没有一种方法可以制作我的所有参数映射,然后为 dev 或 prod 设置一个参数,当我在部署 cloudformation 时设置一个参数时使用参数的 dev 或 prod 属性?

例子:

Parameters:
  env:
    Description: environment
    Type: String
    Default: dev

Mappings: 
  RegionMap: 
    dev: 
      HVM64: "ami-0ff8a91507f77f867"
      HVMG2: "ami-0a584ac55a7631c0c"
    prod: 
      HVM64: "ami-0bdb828fd58c52235"
      HVMG2: "ami-066ee5fd4a9ef77f1"
  DynamoTableName:
    dev: 'devtable'
    prod: 'prodtable'
  SomeOtherVar: ...

Resources: 
  myEC2Instance: 
    Type: "AWS::EC2::Instance"
    Properties: 
      ImageId: !FindInMap
        - RegionMap
        - !Ref env
        - HVM64
      InstanceType: m1.small

标签: amazon-web-servicesamazon-cloudformation

解决方案



推荐阅读