这是新的《Amazon CloudFormation 模板参考指南》。请更新您的书签和链接。有关开始使用 CloudFormation 的帮助,请参阅《Amazon CloudFormation 用户指南》https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/Welcome.html。
Fn::ForEach
Fn::ForEach
内置函数接受一个集合和一个片段,并将集合中的项目应用于提供的片段中的标识符。Fn::ForEach
可以包含其他内置函数,包括 Fn::ForEach
本身,并可以在 Conditions
、Outputs
和 Resources
(包括资源属性)部分中使用。它不能用于以下任何部分:AWSTemplateFormatVersion
、Description
、Metadata
、Transform
、Parameters
、Mappings
、Rules
或 Hooks
部分。
如果您在模板中使用 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 模板本身的内部引用。 - 标识符
-
在
OutputKey
和OutputValue
参数中替换占位符的标识符。OutputKey
和OutputValue
参数中${Identifier}
或&{Identifier}
的所有实例都将替换为Collection
参数中的值。 - 集合
-
要迭代的值的集合。这可以是此参数中的数组,也可以是 Ref 到
CommaDelimitedList
。使用&{Identifier}
时,可以在Collection
中传递非字母数字字符。 - 输出密钥
-
转换模板中的密钥。
${Identifier}
或&{Identifier}
须包含在OutputKey
参数中。例如,如果在模板的Resources
部分中使用Fn::ForEach
,则这是每个资源的逻辑 ID。&{}
语法允许在OutputKey
参数中使用Collection
的非字母数字字符。相关示例,请参阅 在 Fn::ForEach 的 Collection 中传递非字母数字字符。 - 输出值
-
在转换后的模板中为
Collection
参数中的每个项目复制的值。例如,如果在模板的Resources
部分中使用Fn::ForEach
,则这是重复以配置每个资源的模板片段。
返回值
一个扩展对象,其中包含为集合中的每个项目重复一次的对象片段,其中,片段中的标识符将替换为集合中的项目。
支持的函数
您可以在 Fn::ForEach
中使用以下函数。
示例
您可以在 示例 中找到 Conditions
、Outputs
和 Resources
部分的示例。