Fn::Split - AWS CloudFormation

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