Fn::Split - AWS CloudFormation

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

Fn::Split

若要將字串分割為字串值的清單,讓您可以從產生的字串清單中選取元素,請使用 Fn::Split 內部函數。以分隔符號指定分割的位置,例如 , (逗號)。在您分割一個字串之後,請使用 Fn::Select 函數提取特定元素。

例如,如果以逗號分隔的子網路 ID 字串匯入至您的堆疊範本,您可以在每個逗號處分割字串。從子網路 ID 清單,使用 Fn::Select 內部函數指定資源的子網路 ID。

宣告

JSON

{ "Fn::Split" : [ "delimiter", "source string" ] }

YAML

完整函式名稱的語法:

Fn::Split: [ delimiter, source string ]

短格式的語法:

!Split [ delimiter, source string ]

參數

您必須同時指定兩個參數。

分隔符號

字串值,決定來源字串分割的位置。

來源字串

要分割的字串值。

傳回值

字串值清單。

範例

以下範例將示範 Fn::Split 函數的行為。

簡單清單

以下範例將在每個垂直線 (|) 分割字串。函數傳回 ["a", "b", "c"]

JSON

{ "Fn::Split" : [ "|" , "a|b|c" ] }

YAML

!Split [ "|" , "a|b|c" ]

 

包含空字串值的清單

如果您以連續分隔符號分割字串,產生的清單將包含空白字串。以下範例顯示包含兩個連續分隔符號與一個附加分隔符號的字串如何進行分割。函數傳回 ["a", "", "c", ""]

JSON

{ "Fn::Split" : [ "|" , "a||c|" ] }

YAML

!Split [ "|" , "a||c|" ]

 

分割匯入的輸出值

以下範例將匯入的輸出值進行分割,然後從產生的子網路 ID 清單中選取第三個元素,如 Fn::Select 函數所指定。

JSON

{ "Fn::Select" : [ "2", { "Fn::Split": [",", {"Fn::ImportValue": "AccountSubnetIDs"}]}] }

YAML

!Select [2, !Split [",", !ImportValue AccountSubnetIDs]]

支援的函數

對於 Fn::Split 分隔符號,您不能使用任何函數。您必須指定一個字串值。

對於值的 Fn::Split 清單,您可以使用下列函數:

  • Fn::Base64

  • Fn::FindInMap

  • Fn::GetAtt

  • Fn::GetAZs

  • Fn::If

  • Fn::ImportValue

  • Fn::Join

  • Fn::Select

  • Fn::Sub

  • Ref