发布于: Jan 11, 2023

今天,AWS CloudFormation 更新了语言扩展转换来支持 Fn::FindInMap 中的默认值和其他内部函数。客户可以使用这些功能来最大限度地减少 CloudFormation 模板的大小,同时提高模板的可读性。语言转换使用 Fn::Length、Fn::JsonToString 等函数扩展了 CloudFormation 模板语言。客户可以在“Parameters”和“Mappings”中将模板模块化为具有不同属性的组,并使用 Fn::FindInMap 来引用这些组的属性。例如,您可以针对“Mappings”部分包含名为 RegionMap 的单个映射的 EC2 资源类型使用 Fn::FindInMap,该映射将 AMI 与 AWS 区域关联到您的 EC2 实例。通过这些语言增强功能,您可以在 Fn::FindInMap 中使用 Fn::Split、Fn::Select 等内部函数。以前,Fn::FindInMap 仅支持 Ref 内部函数。此外,您可以在 Fn::FindInMap 中定义字符串或列表类型的默认值。 要查看支持的内部函数列表并了解 Fn:FindInMap,请参阅用户指南

您可以针对 AWS::KMS::Key 资源类型配合使用 Fn::Select 和 Fn::Split 与 Fn::FindInMap 来强制执行 KeyUsage 属性等参数值约束。您可以通过编写更少的代码来实现这一点,而不是声明多个条件。同样,您可以在 Fn::FindInMap 中使用默认值,从而最大限度地减少在映射中指定所有可能的值排列的需要。例如,您不必为每个区域创建映射,而是可以使用默认值来指定不相等条件。要查看这些和其他示例,请参阅我们的 GitHub 存储库

这些功能已在以下区域推出:美国东部(俄亥俄州和弗吉尼亚州北部)、美国西部(加利福尼亚州北部和俄勒冈州)、非洲(开普敦)、亚太地区(香港、雅加达、孟买、大阪、首尔、新加坡、悉尼和东京)、加拿大(中部)、由光环新网运营的中国(北京)区域和由西云数据运营的中国(宁夏)区域、欧洲(法兰克福、爱尔兰、伦敦、米兰、巴黎和斯德哥尔摩)、中东(巴林)、南美洲(圣保罗)和 AWS GovCloud(美国)。 

要了解有关语言扩展转换的更多信息,请参阅 CloudFormation 文档

要了解有关如何使用“Parameters”和“Mappings”的模板基础知识,请参阅我们的入门指南