AWS CloudFormation中创建Mappings的作用及对应代码场景疑问
AWS CloudFormation Mappings作用及场景疑问解答
一、Mappings的核心作用
Mappings是CloudFormation模板里用来存储固定键值映射关系的配置段,核心作用包括:
- 集中管理多场景下的固定配置:可以把不同区域、不同环境对应的固定参数预先统一存在Mappings里,不需要散落在各个资源的配置中,后续修改只需要调整Mappings一处即可。
- 实现动态参数匹配:配合
Fn::FindInMap内置函数,可以根据部署时的动态值(比如当前AWS区域、用户输入的环境参数)自动匹配到对应的固定配置,不需要编写大量条件判断逻辑。 - 提升模板通用性:同一份模板可以适配不同部署场景,不需要为每个场景单独修改资源属性配置。
二、当前场景的疑问解答
你看到的两个S3桶配置是完全独立的用途,不存在重复配置的问题:
- 模板
Resources段下创建的StateS3Bucket是本模板部署时动态生成的业务状态存储桶,它的名称用!Sub结合当前区域、账号ID动态生成,用途是给Lambda函数运行时存储业务数据,对应Lambda配置里Environment.Variables.BUCKET的取值。 - Mappings里
RegionMap存储的桶名是提前在各个区域预置好的Lambda代码包存储桶,这些桶不属于本模板创建的资源,部署模板前就已经在对应区域存在,且每个区域的桶名固定、里面预先上传了app.zip代码包。当你没有自定义传入代码桶参数(即S3Defined条件不成立)时,模板会自动根据当前部署区域从Mapping中匹配对应的代码桶,拉取代码包创建Lambda函数。
内容的提问来源于stack exchange,提问作者i'i'i'i'i'i'i'i'i'i'i'i
相关产品推荐
相关产品推荐

