Fn::ForEach - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

这是新的《Amazon CloudFormation 模板参考指南》。请更新您的书签和链接。有关开始使用 CloudFormation 的帮助,请参阅《Amazon CloudFormation 用户指南》https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/Welcome.html

Fn::ForEach

Fn::ForEach 内置函数接受一个集合和一个片段,并将集合中的项目应用于提供的片段中的标识符。Fn::ForEach 可以包含其他内置函数,包括 Fn::ForEach 本身,并可以在 ConditionsOutputsResources(包括资源属性)部分中使用。它不能用于以下任何部分:AWSTemplateFormatVersionDescriptionMetadataTransformParametersMappingsRulesHooks 部分。

如果您在模板中使用 Fn::ForEach 内置函数,则还必须使用 AWS::LanguageExtensions 转换

使用 Fn::ForEach 内置函数不会更改限额,限额适用于生成的模板。限额包括模板的最大大小和模板中资源的最大数量。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的 了解 Amazon CloudFormation 配额

声明

JSON

"Fn::ForEach::LoopLogicalName": [ "Identifier", ["Value1","Value2"], // Collection {"OutputKey": {OutputValue}} ]

YAML

'Fn::ForEach::LoopLogicalName': - Identifier - - Value1 # Collection - Value2 - 'OutputKey': OutputValue

参数

循环逻辑名称

循环的逻辑 ID。此名称在模板中必须是唯一的,并且不能与模板 Resources 部分中的任何逻辑 ID 值冲突。此名称不在转换后的输出中。它用于 CloudFormation 模板本身的内部引用。

标识符

OutputKeyOutputValue 参数中替换占位符的标识符。OutputKeyOutputValue 参数中 ${Identifier}&{Identifier} 的所有实例都将替换为 Collection 参数中的值。

集合

要迭代的值的集合。这可以是此参数中的数组,也可以是 RefCommaDelimitedList。使用 &{Identifier} 时,可以在 Collection 中传递非字母数字字符。

输出密钥

转换模板中的密钥。${Identifier}&{Identifier} 须包含在 OutputKey 参数中。例如,如果在模板的 Resources 部分中使用 Fn::ForEach,则这是每个资源的逻辑 ID。

&{} 语法允许在 OutputKey 参数中使用 Collection 的非字母数字字符。相关示例,请参阅 在 Fn::ForEach 的 Collection 中传递非字母数字字符

输出值

在转换后的模板中为 Collection 参数中的每个项目复制的值。例如,如果在模板的 Resources 部分中使用 Fn::ForEach,则这是重复以配置每个资源的模板片段。

返回值

一个扩展对象,其中包含为集合中的每个项目重复一次的对象片段,其中,片段中的标识符将替换为集合中的项目。

支持的函数

您可以在 Fn::ForEach 中使用以下函数。

示例

您可以在 示例 中找到 ConditionsOutputsResources 部分的示例。