这是新的《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 部分的示例。