Fn::Split - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fn::Split

Pour fractionner une chaîne en liste de valeurs de chaînes afin de pouvoir sélectionner un élément dans la liste de chaîne obtenue, utilisez la fonction intrinsèque Fn::Split. Spécifiez l'emplacement des fractionnements avec un délimiteur, par exemple , (une virgule). Une fois que la chaîne a été fractionnée, utilisez la fonction Fn::Select pour sélectionner un élément spécifique.

Par exemple, si une chaîne de sous-réseau séparée par des virgules IDs est importée dans votre modèle de pile, vous pouvez diviser la chaîne à chaque virgule. Dans la liste des sous-réseauxIDs, utilisez la fonction Fn::Select intrinsèque pour spécifier un ID de sous-réseau pour une ressource.

Déclaration

JSON

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

YAML

Syntaxe pour le nom complet de la fonction :

Fn::Split: [ delimiter, source string ]

Syntaxe pour la forme courte :

!Split [ delimiter, source string ]

Paramètres

Vous devez spécifier les deux paramètres.

delimiter

Valeur de chaîne qui détermine l'emplacement de division de la chaîne source.

chaîne source

Valeur de la chaîne que vous souhaitez fractionner.

Valeur renvoyée

Liste de valeurs d'une chaîne.

Exemples

Les exemples suivants montrent le comportement de la fonction Fn::Split.

Liste simple

L'exemple suivant fractionne une chaîne à chaque barre verticale (|). La fonction retourne ["a", "b", "c"].

JSON

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

YAML

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

 

Liste avec des valeurs de chaîne vides

Si vous fractionnez une chaîne avec des délimiteurs consécutifs, la liste obtenue comprend une chaîne vide. L'exemple suivant montre comment une chaîne avec deux délimiteurs consécutifs et un délimiteur ajouté est fractionnée. La fonction retourne ["a", "", "c", ""].

JSON

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

YAML

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

 

Fractionner une valeur de sortie importée

L'exemple suivant divise une valeur de sortie importée, puis sélectionne le troisième élément dans la liste de sous-réseaux qui en résulteIDs, comme spécifié par la Fn::Select fonction.

JSON

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

YAML

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

Fonctions prises en charge

Avec le délimiteur Fn::Split, vous ne pouvez pas utiliser toutes les fonctions. Vous devez spécifier une valeur de type chaîne.

Pour la liste de valeurs Fn::Split, vous pouvez utiliser les fonctions suivantes :

  • Fn::Base64

  • Fn::FindInMap

  • Fn::GetAtt

  • Fn::GetAZs

  • Fn::If

  • Fn::ImportValue

  • Fn::Join

  • Fn::Select

  • Fn::Sub

  • Ref