Fn::ForEach - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Fn::ForEach

Fn::ForEach 內部函數接受集合和片段,並將集合中的項目套用至所提供片段中的識別符。Fn::ForEach 可能包含其他內部函數 (包括 Fn::ForEach 本身),並可在 Conditions CloudFormation 範本的 區段語法參考Outputs CloudFormation 範本的 區段語法參考Resources CloudFormation 範本的 區段語法參考 (包括資源屬性) 區段中使用。不能在 CloudFormation 範本的格式版本區段語法參考Description CloudFormation 範本的 區段語法參考Metadata CloudFormation 範本的 區段語法參考Transform CloudFormation 範本的 區段Parameters CloudFormation 範本的 區段語法參考Mappings CloudFormation 範本的 區段語法參考Rules CloudFormation 範本的 區段語法參考Hooks 區段中使用。如需範例,請參閱 範例

重要

您必須使用 AWS::LanguageExtensions 轉換程序 才能使用 Fn::ForEach 內部函數。

重要

使用 Fn::ForEach 內部函數不會更改配額,這些配額將套用到所產生的範本。配額包括範本的大小上限和範本中的資源數量上限。如需詳細資訊,請參閱 瞭解 CloudFormation 配額

宣告

JSON

"Fn::ForEach::UniqueLoopName": [ "Identifier", ["Value1","Value2"], // Collection {"OutputKey": {OutputValue}} ]

YAML

'Fn::ForEach::UniqueLoopName': - Identifier - - Value1 # Collection - Value2 - 'OutputKey': OutputValue

參數

UniqueLoopName

此迴圈的名稱。名稱在範本中必須是唯一的,且不能與範本 Resources CloudFormation 範本的 區段語法參考 區段中的任何邏輯 ID 值衝突。轉換後的輸出中沒有此名稱。

Identifier

您想在 OutputKeyOutputValue 參數中替換的識別碼,這些參數代表該範本片段已被複寫。在 OutputKeyOutputValue 參數中,${Identifier}&{Identifier} 的所有執行個體均會以來自 Collection 參數的值取代。

Collection

要逐一查看的值的集合。這可以是此參數中的陣列,也可以是 CommaDelimitedListRef。使用 &{Identifier} 時,可以在 Collection 中傳入非英數字元。

OutputKey

轉換後範本中的金鑰。${Identifier}&{Identifier} 必須包含在 OutputKey 參數中。例如,如果 Fn::ForEach 在範本的 Resources CloudFormation 範本的 區段語法參考 區段中使用,則這是每項資源的邏輯 Id。

&{} 語法允許在 OutputKey 參數內使用 Collection 中的非英數字元。

OutputValue

在轉換後的範本中針對 Collection 參數中的每個項目複寫的值。例如,如果 Fn::ForEach 在範本的 Resources CloudFormation 範本的 區段語法參考 區段中使用,則這是重複用來設定每項資源的範本片段。

傳回值

展開的物件包含為集合中每個項目重複一次的物件片段,片段中的識別碼被來自集合的項目替換。

支援的函數

您可以在 Fn::ForEach 中使用以下函數。

範例

如需範例,請參閱 範例