发布于: Jan 16, 2023

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

可以面向 KMS 密钥资源类型将 Fn::Select 和 Fn::Split 与 Fn::FindInMap 结合使用,从而强制执行 KeyUsage 属性等参数值约束。可以在一行代码中实现此约束,而无需声明多个条件。同样,可以在 Fn::FindInMap 中使用默认值,以最大限度地避免在映射中指定所有可能的值排列。例如,不必为每个区域创建映射,而是可以使用默认值来指定不等于的条件。要查看这些和其他示例,请参阅我们的 GitHub 存储库

这些功能已在由光环新网运营的亚马逊云科技中国(北京)区域和由西云数据运营的亚马逊云科技中国(宁夏)区域推出。

要了解有关语言扩展转换的更多信息,请参阅 CloudFormation 文档
要了解有关如何使用参数和映射的模板基础知识,请参阅我们的入门指南