これは新しい AWS CloudFormation テンプレートリファレンスガイドです。ブックマークとリンクを更新してください。CloudFormation の開始方法については、『AWS CloudFormation ユーザーガイド』を参照してください。
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
組み込み関数を使用しても、生成されるテンプレートに適用されるクォータは変更されません。クォータには、テンプレートの最大サイズとテンプレート内の最大リソース数が含まれます。詳細については、『AWS CloudFormation ユーザーガイド』の「AWS 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
パラメータの各項目に変換されたテンプレートで複製される値。たとえば、Fn::ForEach
をテンプレートのResources
セクションで使用する場合、これは各リソースを設定するために繰り返されるテンプレートフラグメントです。
戻り値
コレクションの項目ごとに 1 回繰り返されるオブジェクト フラグメントを含む展開オブジェクト。フラグメントの識別子はコレクションの項目に置き換えられます。
サポートされている関数
Fn::ForEach
内で次の関数を使用できます。
例
Conditions
、Outputs
、Resources
の各セクションの例は、例 に記載されています。