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

Fn::ForEach

Fn::ForEach 内置函数接受一个集合和一个片段,并将集合中的项目应用于提供的片段中的标识符。Fn::ForEach 可以包含其他内置函数,包括 Fn::ForEach 本身,并可以在 Conditions输出资源(包括资源属性)部分中使用。不能用在 格式版本描述元数据转换参数映像规则Hooks 部分中。有关示例,请参阅示例

重要

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

重要

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

声明

JSON

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

YAML

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

参数

UniqueLoopName

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

Identifier

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

Collection

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

OutputKey

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

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

OutputValue

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

返回值

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

支持的函数

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

示例

有关示例,请参阅示例