Fn::ForEach - AWS CloudFormation

Fn::ForEach

Fn::ForEach 内置函数接受一个集合和一个片段,并将集合中的项目应用于提供的片段中的标识符。Fn::ForEach 可以包含其他内置函数,包括 Fn::ForEach 本身,并可以在 CloudFormation 模板的 Conditions 部分语法参考CloudFormation 模板的 Outputs 部分语法参考CloudFormation 模板的 Resources 部分语法参考(包括资源属性)部分中使用。不能用在 CloudFormation 模板的格式版本部分语法参考CloudFormation 模板的 Description 部分语法参考CloudFormation 模板的 Metadata 部分语法参考CloudFormation 模板的 Transform 部分CloudFormation 模板的 Parameters 部分语法参考CloudFormation 模板的 Mappings 部分语法参考CloudFormation 模板的 Rules 部分语法参考Hooks 部分中。有关示例,请参阅示例

重要

必须使用 AWS::LanguageExtensions 转换 才能使用 Fn::ForEach 内置函数。

重要

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

声明

JSON

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

YAML

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

参数

UniqueLoopName

此循环的名称。此名称在模板中必须是唯一的,并且不能与模板 CloudFormation 模板的 Resources 部分语法参考 部分中的任何逻辑 ID 值冲突。此名称不在转换后的输出中。

Identifier

您要在代表所复制的模板片段的 OutputKeyOutputValue 参数中替换的标识符。OutputKeyOutputValue 参数中的 ${Identifier}&{Identifier} 的所有实例都将替换为 Collection 参数中的值。

Collection

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

OutputKey

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

&{} 语法允许在 OutputKey 参数中使用 Collection 的非字母数字字符。

OutputValue

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

返回值

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

支持的函数

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

示例

有关示例,请参阅示例