これは新しい 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 の各セクションの例は、例 に記載されています。