Tous les produits
Search
Centre de documentation

Resource Orchestration Service:Fn::Select

Dernière mise à jour :Aug 10, 2026

La fonction Fn::Select récupère des éléments de données d'une liste ou d'un dictionnaire à l'aide d'un index ou d'une clé.

Déclaration

Interroger un ou plusieurs éléments de données dans une liste ou un tableau

Récupérer un seul élément de données via un index

  • JSON

    {
      "Fn::Select": [
        "index",
        [
          "value1",
          "value2",
          ...
        ],
        "default_value"
      ]
    }
  • YAML

    • Syntaxe avec le nom complet de la fonction :

      Fn::Select:
        - index
        - - value1
          - value2
          - ...
        - default_value
    • Syntaxe abrégée :

      !Select [index, [value1, value2, ...], default_value]

Récupérer plusieurs éléments de données via un index

  • JSON

    {
      "Fn::Select": [
        "start:stop:step",
        [
          "value1",
          "value2",
          ...
        ]
      ]
    }
  • YAML

    • Syntaxe avec le nom complet de la fonction :

      Fn::Select:
        - start:stop:step
        - - value1
          - value2
          - ...
    • Syntaxe abrégée :

      !Select [start:stop:step, [value1, value2, ...]]

Récupérer la valeur associée à une clé dans un dictionnaire ou une table de mappage

  • JSON

    {
      "Fn::Select": [
        "key",
        {
          "key1": "value1",
          "key2": "value2",
          ...
        },
        "default_value"
      ]
    }
  • YAML

    • Syntaxe avec le nom complet de la fonction :

      Fn::Select:
        - key
        - key1: value1
          key2: value2
          ...
        - default_value
    • Syntaxe abrégée :

      !Select [key, {key1:value1, key2:value2}, default_value]

Paramètres

  • index : indice de l'élément de données à récupérer. Les valeurs valides vont de 0 à N - 1 ou de -N à -1, où N représente le nombre total d'éléments dans la liste. Les indices négatifs permettent une lecture de droite à gauche. Si l'indice est invalide, la fonction renvoie la valeur par défaut. En l'absence de valeur par défaut spécifiée, elle renvoie une chaîne vide.

  • start, stop et step : les positions de début (start) et de fin (stop) définissent la plage d'éléments à extraire de la liste. La valeur step détermine l'intervalle entre les éléments sélectionnés.

    • start:stop : les règles de validation sont identiques à celles du paramètre index. Par défaut, start vaut 0 et stop vaut N. La fonction renvoie les éléments situés entre la position start + 1 et la position stop. En cas de valeurs invalides, elle renvoie une liste vide.

    • start:stop:step : la valeur par défaut de step est 1. Si step est négatif, l'indice de départ doit être supérieur à l'indice de fin. La fonction sélectionne les éléments selon un intervalle de -(step - 1) depuis start jusqu'à stop + 1, puis renvoie une liste.

  • key : clé présente dans le dictionnaire. La fonction renvoie la valeur correspondante. Si la clé n'existe pas, elle renvoie la valeur par défaut. À défaut de valeur par défaut spécifiée, elle renvoie une chaîne vide.

  • default_value : valeur de secours renvoyée lorsque l'indice ou la clé spécifié(e) est invalide. Si ce paramètre est omis et que l'indice ou la clé est incorrect, la fonction renvoie une chaîne vide.

Valeur de retour

Un ou plusieurs éléments de données.

Exemples

Interroger un ou plusieurs éléments de données dans une liste ou un tableau

  • Dans cet exemple, la fonction renvoie « grapes ».

    !Select ['1', [apples, grapes, oranges, mangoes]] 
    {
      "Fn::Select": [
        "1",
        ["apples", "grapes", "oranges", "mangoes"]
      ]
    }
  • Cet exemple renvoie [2, 3].

    !Select ['1:3', [1,2,3,4,5]]
    {
      "Fn::Select": [
        "1:3",
        [1,2,3,4,5]
      ]
    }
  • Le résultat obtenu ici est [1, 3, 5].

    !Select ['::2', [1,2,3,4,5]]
    {
      "Fn::Select": [
        "::2",
        [1,2,3,4,5]
      ]
    }
  • Dans ce cas, la fonction renvoie [5, 3].

    !Select ['5:0:-2', [1,2,3,4,5]]
    {
      "Fn::Select": [
        "5:0:-2",
        [1,2,3,4,5]
      ]
    }

Récupérer la valeur d'une clé depuis un dictionnaire

!Select [key1, {key1: grapes, key2: mangoes}]
{
  "Fn:Select": [
    "key1",
    {
      "key1": "grapes",
      "key2": "mangoes"
    }
  ]
}

L'exemple ci-dessus renvoie « grapes ».

Extraire un élément de données d'une liste délimitée par des virgules

Parameters:
  userParam:
    Type: CommaDelimitedList
    Default: 10.0.0.1, 10.0.0.2, 10.0.0.3
Resources:
  resourceID:
    Properties:
      CidrBlock:
        !Select:
          - '0'
          - !Ref userParam

Le résultat attendu est 10.0.0.1.

Fonctions prises en charge

La valeur d'index de la fonction Fn::Select accepte la fonction Ref.

La liste d'objets utilisée par Fn::Select prend en charge les fonctions suivantes :