Fn::ForEach - AWS CloudFormation

Fn::ForEach

Fn::ForEach 組み込み関数はコレクションとフラグメントを受け取り、コレクションの項目を指定されたフラグメントの識別子に適用します。Fn::ForEach は (Fn::ForEach 自体など) 他の組み込み関数を含めることができ、ConditionsOutputsResources (リソース プロパティを含む) セクション内で使用できます。形式バージョンDescriptionMetadataTransformParametersMappingsRulesHooks セクションでは使用できません。例については、「」を参照してください。

重要

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

複製されたテンプレートフラグメントを表す、OutputKeyOutputValue パラメーターで置き換える識別子。OutputKeyOutputValue パラメータにある ${Identifier} または &{Identifier} のすべてのインスタンスは、Collection パラメータの値に置き換えられます。

Collection

反復処理の対象となる値のコレクション。このパラメーターの配列または Ref に対する CommaDelimitedList の場合があります。&{Identifier} を使用すると、英数字以外の文字を Collection に渡すことができます。

OutputKey

変換されたテンプレートのキー。${Identifier} または &{Identifier}OutputKey パラメータに含まれている必要があります。たとえば、テンプレートの Resources セクションで Fn::ForEach が使用されている場合、これは各リソースの論理 ID です。

&{} 構文では、OutputKey パラメータで使用する Collection に英数字以外の文字を使用できます。この例については、「Fn::ForEach の Collection 内に英数字以外の文字を渡す」を参照してください。

OutputValue

Collection パラメータの各項目に変換されたテンプレートで複製される値。たとえば、Fn::ForEach をテンプレートの Resources セクションで使用する場合、これは各リソースを設定するために繰り返されるテンプレートフラグメントです。

戻り値

コレクションの項目ごとに 1 回繰り返されるオブジェクト フラグメントを含む展開オブジェクト。フラグメントの識別子はコレクションの項目に置き換えられます。

サポートされている関数

Fn::ForEach 内で次の関数を使用できます。

例については、「」を参照してください。