Tous les produits
Search
Centre de documentation

CloudFlow:Étape foreach

Dernière mise à jour :Aug 24, 2026

Une étape foreach parcourt un tableau présent dans son entrée et exécute la même séquence d'étapes en parallèle pour chaque élément du tableau. Chaque itération conserve sa propre variable locale, et un mappage de sortie combine les résultats de toutes les itérations pour former la sortie de l'étape foreach.

Fonctionnement d'une étape foreach

Une étape foreach parcourt un paramètre de tableau d'entrée et exécute les étapes définies dans son champ steps pour chaque élément du tableau. Une étape foreach fonctionne comme l'instruction foreach d'un langage de programmation, à la différence près que les itérations s'exécutent en parallèle plutôt que séquentiellement.

Lorsqu'une étape foreach s'exécute, la séquence suivante se produit :

  1. L'étape foreach lance une itération pour chaque élément du tableau et exécute ces itérations simultanément.

  2. Chaque itération dispose de sa propre variable locale. Les étapes d'une itération modifient uniquement la variable locale de cette itération.

  3. Une fois toutes les branches terminées, les variables locales de toutes les itérations constituent la variable $local de l'étape foreach. Cette variable est un tableau dont chaque élément est un objet JSON enregistrant le résultat d'une itération.

  4. Le mappage de sortie de l'étape foreach convertit le tableau des variables locales des itérations en la sortie de l'étape foreach.

Limites

Une étape foreach exécute au maximum 100 itérations simultanément.

Propriétés

Une étape foreach prend en charge les propriétés suivantes.

Propriété Obligatoire Description
type Oui Le type de l'étape. Définissez la valeur sur foreach.
name Oui Le nom de l'étape.
iterationMapping Oui Le mappage d'itération de l'étape foreach. Les champs de iterationMapping sont décrits dans le tableau suivant.
steps Oui Les étapes qui s'exécutent lors de chaque itération.
end Non Indique s'il faut continuer à exécuter les étapes définies après l'étape foreach lorsque celle-ci se termine.
inputMappings Non Le mappage d'entrée de l'étape foreach. Si une étape ne définit pas de mappage d'entrée, elle hérite de l'entrée de son étape parente ou du flux.
outputMappings Non Le mappage de sortie de l'étape foreach. Si vous ne spécifiez pas de mappage de sortie, la sortie de l'étape foreach est vide par défaut.

La propriété iterationMapping d'une étape foreach contient les champs suivants.

Champ Obligatoire Description
collection Oui Spécifie quel paramètre de l'entrée est utilisé comme collection pour la boucle.
item Oui Spécifie le nom sous lequel l'élément actuel est fusionné dans l'entrée de l'itération.
index Non Spécifie le nom sous lequel la position actuelle est fusionnée dans l'entrée de l'itération.

Exemple

La définition de flux suivante contient une étape foreach nommée myforeach. Pour chaque élément du tableau names, l'étape foreach exécute une étape de tâche nommée toUpperCase.

version: v1
type: flow
steps:
  - type: foreach
    name: myforeach
    iterationMapping:
      collection: $.names
      item: name
    steps:
      - type: task
        name: toUpperCase
        resourceArn: acs:fc:{region}:{account}:services/fnf_test/functions/toUpperCase
    outputMappings:
      - target: names
        source: $local[*].name

Remplacez {region} et {account} dans resourceArn par vos propres valeurs.

Flux de données dans l'exemple

Les étapes suivantes illustrent la circulation des données à travers l'étape myforeach et le champ qui pilote chaque transformation.

1. Entrée du flux. L'étape myforeach ne définit pas de mappage d'entrée, donc l'entrée de myforeach est identique à l'entrée du flux :

{
  "names": ["a", "b", "c"]
}

2. Entrée de l'itération. L'étape toUpperCase ne définit pas non plus de mappage d'entrée, elle hérite donc de l'entrée de son étape parente. À chaque exécution d'une itération, iterationMapping fusionne l'élément actuel dans cette entrée en tant que valeur, avec name comme clé. Les trois itérations reçoivent ainsi les entrées suivantes.

Entrée de l'itération pour a :

{
  "name": "a",
  "names":["a","b","c"]
}

Entrée de l'itération pour b :

{
  "name": "b",
  "names":["a","b","c"]
}

Entrée de l'itération pour c :

{
  "name": "c",
  "names":["a","b","c"]
}

3. Sortie de l'itération. toUpperCase s'exécute trois fois, une fois par élément, et renvoie les sorties suivantes.

Sortie de l'itération pour a :

{
  "name": "A"
}

Sortie de l'itération pour b :

{
  "name": "B"
}

Sortie de l'itération pour c :

{
  "name": "C"
}

4. Variable locale de l'étape foreach. La variable locale de myforeach est un tableau qui contient le résultat de chaque itération :

[
  {
    "name": "A"
  },
  {
    "name": "B"
  },
  {
    "name": "C"
  }
]

5. Sortie de l'étape et sortie du flux. La propriété outputMappings de myforeach mappe $local[*].name vers names, ce qui produit la sortie suivante pour l'étape. Comme le flux ne définit ni mappage de sortie ni mappage de résultat, cette sortie constitue également la sortie de l'exécution finale du flux.

{
  "names": ["A", "B", "C"]
}