本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Fn::Split
若要將字串分割為字串值的清單,讓您可以從產生的字串清單中選取元素,請使用 Fn::Split
內部函數。以分隔符號指定分割的位置,例如 ,
(逗號)。在您分割一個字串之後,請使用 Fn::Select 函數提取特定元素。
例如,如果以逗號分隔的子網路字串IDs匯入堆疊範本,您可以在每個逗號分割字串。從子網路 清單中IDs,使用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|" ]
分割匯入的輸出值
下列範例會分割匯入的輸出值,然後從產生的子網路清單中選取第三個元素IDs,如 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