Fn::Split
Para dividir una cadena en una lista de valores de cadena, para poder seleccionar un elemento de la lista de cadenas resultante, utilice la función intrínseca Fn::Split
. Especifique la ubicación de divisiones con un delimitador, como ,
(una coma). Después de dividir una cadena, utilice la función Fn::Select para elegir un elemento específico.
Por ejemplo, si una cadena delimitada por comas de IDs de subred se importa a la plantilla de pila, puede dividir la cadena en cada coma. Desde la lista de IDs de subred, use la función intrínseca Fn::Select
para especificar un ID de subred de un recurso.
Declaración
JSON
{ "Fn::Split" : [ "
", "
delimiter
source string
" ] }
YAML
Sintaxis del nombre de función completo:
Fn::Split: [
,
delimiter
source string
]
Sintaxis de la forma abreviada:
!Split [
,
delimiter
source string
]
Parámetros
Debe especificar ambos parámetros.
- delimiter
-
Un valor de cadena que determina dónde se divide la cadena de origen.
- cadena de origen
-
El valor de cadena que desee dividir.
Valor devuelto
Una lista de los valores de cadena.
Ejemplos
Los siguientes ejemplos muestran el comportamiento de la función Fn::Split
.
Lista simple
El siguiente ejemplo divide una cadena en cada barra vertical (|
). La función devuelve ["a", "b", "c"]
.
JSON
{ "Fn::Split" : [ "|" , "a|b|c" ] }
YAML
!Split [ "|" , "a|b|c" ]
Lista con valores de cadenas vacíos
Si divide una cadena con delimitadores consecutivos, la lista resultante incluirá una cadena vacía. El siguiente ejemplo muestra cómo se divide una cadena con dos delimitadores consecutivos y un delimitador agregado. La función devuelve ["a", "", "c",
""]
.
JSON
{ "Fn::Split" : [ "|" , "a||c|" ] }
YAML
!Split [ "|" , "a||c|" ]
Dividir un valor de salida importado
En el siguiente ejemplo se divide un valor de salida importada y, a continuación, selecciona el tercer elemento de la lista resultante de IDs de subred, tal y como especifica la función Fn::Select
.
JSON
{ "Fn::Select" : [ "2", { "Fn::Split": [",", {"Fn::ImportValue": "AccountSubnetIDs"}]}] }
YAML
!Select [2, !Split [",", !ImportValue AccountSubnetIDs]]
Funciones compatibles
Para el delimitador Fn::Split
, no se puede usar ninguna función. Debe especificar un valor de cadena.
Para la lista de valores Fn::Split
, se pueden usar las siguientes funciones:
-
Fn::Base64
-
Fn::FindInMap
-
Fn::GetAtt
-
Fn::GetAZs
-
Fn::If
-
Fn::ImportValue
-
Fn::Join
-
Fn::Select
-
Fn::Sub
-
Ref