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
-
您要在代表所复制的模板片段的
和OutputKey
参数中替换的标识符。OutputValue
和OutputKey
参数中的OutputValue
${Identifier}
或&{Identifier}
的所有实例都将替换为
参数中的值。Collection
Collection
-
要迭代的值的集合。这可以是此参数中的数组,也可以是
Ref
到CommaDelimitedList
。使用&{Identifier}
时,可以在Collection
中传递非字母数字字符。 OutputKey
-
转换后的模板中的密钥。
${Identifier}
或&{Identifier}
必须包含在
参数中。例如,如果在模板的 CloudFormation 模板的 Resources 部分语法参考 部分中使用OutputKey
Fn::ForEach
,则这是每个资源的逻辑 ID。&{}
语法允许在
参数中使用OutputKey
Collection
的非字母数字字符。 OutputValue
-
在转换后的模板中为
参数中的每个项目复制的值。例如,如果在模板的 CloudFormation 模板的 Resources 部分语法参考 部分中使用Collection
Fn::ForEach
,则这是重复以配置每个资源的模板片段。
返回值
一个扩展对象,其中包含为集合中的每个项目重复一次的对象片段,其中,片段中的标识符将替换为集合中的项目。
支持的函数
您可以在 Fn::ForEach
中使用以下函数。
示例
有关示例,请参阅示例。