Fn::ForEach - AWS CloudFormation

これは新しい AWS CloudFormation テンプレートリファレンスガイドです。ブックマークとリンクを更新してください。CloudFormation の開始方法については、『AWS CloudFormation ユーザーガイド』を参照してください。

Fn::ForEach

Fn::ForEach 組み込み関数はコレクションとフラグメントを受け取り、コレクションの項目を指定されたフラグメントの識別子に適用します。Fn::ForEach は (Fn::ForEach 自体など) 他の組み込み関数を含めることができ、ConditionsOutputsResources (リソース プロパティを含む) セクション内で使用できます。AWSTemplateFormatVersionDescriptionMetadataTransformParametersMappingsRules、または 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 内で次の関数を使用できます。

ConditionsOutputsResources の各セクションの例は、 に記載されています。