Fn::ForEach
Fn::ForEach
内置函数接受一个集合和一个片段,并将集合中的项目应用于提供的片段中的标识符。Fn::ForEach
可以包含其他内置函数,包括 Fn::ForEach
本身,并可以在 Conditions、Outputs、Resources(包括资源属性)部分中使用。不能用在 格式版本、Description、Metadata、Transform、Parameters、Mappings、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}
必须包含在
参数中。例如,如果在模板的 Resources 部分中使用OutputKey
Fn::ForEach
,则这是每个资源的逻辑 ID。&{}
语法允许在
参数中使用OutputKey
Collection
的非字母数字字符。 OutputValue
-
在转换后的模板中为
参数中的每个项目复制的值。例如,如果在模板的 Resources 部分中使用Collection
Fn::ForEach
,则这是重复以配置每个资源的模板片段。
返回值
一个扩展对象,其中包含为集合中的每个项目重复一次的对象片段,其中,片段中的标识符将替换为集合中的项目。
支持的函数
您可以在 Fn::ForEach
中使用以下函数。
示例
有关示例,请参阅示例。