Fn::ForEach
Fn::ForEach
組み込み関数はコレクションとフラグメントを受け取り、コレクションの項目を指定されたフラグメントの識別子に適用します。Fn::ForEach
は (Fn::ForEach
自体など) 他の組み込み関数を含めることができ、Conditions、Outputs、Resources (リソース プロパティを含む) セクション内で使用できます。形式バージョン、Description、Metadata、Transform、Parameters、Mappings、Rules、Hooks
セクションでは使用できません。例については、「例」を参照してください。
重要
Fn::ForEach
組み込み関数を使用するには、AWS::LanguageExtensions 変換 を使用する必要があります。
重要
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
に英数字以外の文字を使用できます。この例については、「Fn::ForEach の Collection 内に英数字以外の文字を渡す」を参照してください。 OutputValue
-
パラメータの各項目に変換されたテンプレートで複製される値。たとえば、Collection
Fn::ForEach
をテンプレートの Resources セクションで使用する場合、これは各リソースを設定するために繰り返されるテンプレートフラグメントです。
戻り値
コレクションの項目ごとに 1 回繰り返されるオブジェクト フラグメントを含む展開オブジェクト。フラグメントの識別子はコレクションの項目に置き換えられます。
サポートされている関数
Fn::ForEach
内で次の関数を使用できます。
例
例については、「例」を参照してください。