Fn::Split
Para dividir uma string em uma lista de valores de string, para que você possa selecionar um elemento na lista de strings resultante, use a função intrínseca Fn::Split
. Especifique o local das divisões com um delimitador, como ,
(uma vírgula). Após dividir uma string, use a função Fn::Select para escolher um elemento específico.
Por exemplo, se uma string de IDs de sub-rede delimitada por vírgulas for importada para seu modelo de pilha, você poderá dividir a string em cada vírgula. Na lista de IDs de sub-rede, use a função intrínseca Fn::Select
para especificar um ID de sub-rede para um recurso.
Declaração
JSON
{ "Fn::Split" : [ "
", "
delimiter
source string
" ] }
YAML
Sintaxe para o nome da função completo:
Fn::Split: [
,
delimiter
source string
]
Sintaxe para a forma resumida:
!Split [
,
delimiter
source string
]
Parâmetros
Você deve especificar os dois parâmetros.
- delimitador
-
Um valor de string que determina onde a string de origem será dividida.
- string de origem
-
O valor de string que você deseja dividir.
Valor de retorno
Uma lista de valores de string.
Exemplos
Os exemplos a seguir demonstram o comportamento da função Fn::Split
.
Lista simples
O exemplo a seguir divide uma string em cada barra vertical (|
). A função retorna ["a", "b", "c"]
.
JSON
{ "Fn::Split" : [ "|" , "a|b|c" ] }
YAML
!Split [ "|" , "a|b|c" ]
Lista com valores de string vazios
Se você dividir uma string com delimitadores consecutivos, a lista resultante incluirá uma string vazia. O exemplo a seguir mostra como uma string com dois delimitadores consecutivos e um delimitador anexado é dividida. A função retorna ["a", "", "c",
""]
.
JSON
{ "Fn::Split" : [ "|" , "a||c|" ] }
YAML
!Split [ "|" , "a||c|" ]
Divisão de um valor de saída importado
O exemplo a seguir divide um valor de saída importado e seleciona o terceiro elemento na lista resultante de IDs de sub-rede, conforme especificado pela função Fn::Select
.
JSON
{ "Fn::Select" : [ "2", { "Fn::Split": [",", {"Fn::ImportValue": "AccountSubnetIDs"}]}] }
YAML
!Select [2, !Split [",", !ImportValue AccountSubnetIDs]]
Funções compatíveis
No delimitador Fn::Split
, não é possível usar nenhuma função. É necessário especificar um valor de string.
Para a lista de valores Fn::Split
, use as seguintes funções:
-
Fn::Base64
-
Fn::FindInMap
-
Fn::GetAtt
-
Fn::GetAZs
-
Fn::If
-
Fn::ImportValue
-
Fn::Join
-
Fn::Select
-
Fn::Sub
-
Ref