You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS CloudFormation模板的Mappings段创建并使用三级映射

CloudFormation三级映射查询实现方案

方案1:嵌套Fn::FindInMap + Fn::Get(无需调整原映射结构)

你可以先调用Fn::FindInMap查询前两级维度得到第三级的映射对象,再用Fn::Get取出对应第三维度的值,写法如下:

# 示例参数定义
Parameters:
  CellName:
    Type: String
    AllowedValues: [cell1, cell2]
  Domain:
    Type: String
    AllowedValues: [beta, prod]
  Realm:
    Type: String
    AllowedValues: [us-east-1, us-west-2, eu-west-1]

# 原有三级映射结构无需修改
Mappings:
  ElastiCacheNodeTypeMapping:
    cell1:
      beta:
        us-east-1: cache.m6g.large
        us-west-2: cache.m6g.large
        eu-west-1: cache.m6g.2xlarge
      prod:
        us-east-1: cache.r6g.24xlarge
    cell2:
      beta:
        us-east-1: cache.m6g.large
        us-west-2: cache.m6g.large
        eu-west-1: cache.m6g.large
      prod:
        us-east-1: cache.r6g.24xlarge

Resources:
  MyElastiCacheCluster:
    Type: AWS::ElastiCache::CacheCluster
    Properties:
      # 三级映射查询写法
      CacheNodeType: !Get
        - !FindInMap [ElastiCacheNodeTypeMapping, !Ref CellName, !Ref Domain]
        - !Ref Realm
      # 其他属性省略

方案1优缺点

  • 优点:原映射结构无需改动,层级清晰易维护
  • 缺点:依赖Fn::Get函数,仅兼容2019-09-09及之后版本的CloudFormation模板格式版本

方案2:扁平化映射为两级结构(兼容性最好)

你可以把前两个维度的key拼接为单个顶级key,将映射调整为原生支持的两级结构,直接用Fn::FindInMap查询即可:

# 调整后的两级映射结构
Mappings:
  ElastiCacheNodeTypeMapping:
    cell1#beta:
      us-east-1: cache.m6g.large
      us-west-2: cache.m6g.large
      eu-west-1: cache.m6g.2xlarge
    cell1#prod:
      us-east-1: cache.r6g.24xlarge
    cell2#beta:
      us-east-1: cache.m6g.large
      us-west-2: cache.m6g.large
      eu-west-1: cache.m6g.large
    cell2#prod:
      us-east-1: cache.r6g.24xlarge

# 查询写法
CacheNodeType: !FindInMap
  - ElastiCacheNodeTypeMapping
  - !Sub "${CellName}#${Domain}"
  - !Ref Realm

方案2优缺点

  • 优点:仅使用Fn::FindInMap和Fn::Sub原生函数,兼容所有CloudFormation模板版本,报错排查更简单
  • 缺点:需要调整原有映射结构,拼接的key可读性稍差

内容的提问来源于stack exchange,提问作者Rohit Lakhotia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:15:03