发布于: Jul 26, 2023

AWS CloudFormation 宣布推出 Fn::ForEach 内部函数的循环功能。使用 Fn::ForEach,可以用最少的代码行复制各部分的模板。可以使用 Fn::ForEach 来简化模板布局,让您和您的同行更轻松、更快地查看代码。Fn::ForEach 有助于减少人为错误,例如更新错误的属性或错过更新模板中的多个目标属性。

要使用 Fn::ForEach,您必须声明 AWS::LanguageExtensions 转换。该语言扩展转换扩展了基本 CloudFormation JSON/YAML 模板语言的功能。通过此次发布,您可以在模板的“资源”、“资源属性”、“条件”和“输出”部分中使用 Fn::ForEach。例如,您可以使用 Fn::ForEach 来声明具有唯一标识符名称的五个 AWS::DynamoDB::Table 实例,而不是复制相同的代码行。此外,您还可以使用嵌套的 Fn::ForEach 循环,将 Fn::ForEach 与其他内部函数(例如 Fn::Join)结合以生成高级模板。例如,您可以将 VPC、子网和中转网关等资源组合为嵌套循环,以创建网络堆栈。有关示例模板的示例,请参阅用户指南

Fn::ForEach 内部函数在提供了 CloudFormation 的 AWS 区域推出。请参阅 AWS 区域表,查看提供 CloudFormation 的 AWS 区域。

Fn::ForEach 是通过我们的语言讨论 Github 存储库与 CloudFormation 社区开展公开讨论的结果。感谢社区分享他们的反馈。访问语言讨论存储库,请求语言功能,并就新语言功能的征求意见 (RFC) 建议留下反馈。