• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Structure de boucle

Parcourez des listes, des cartes ou des collections à l'aide de boucles.

Les boucles itèrent sur les collections définies par in, créant automatiquement les variables index et element pour chaque itération. Accédez-y avec l'expression JQ ${{ .steps.<loopStepName>.loop.element }} ou ${{ .steps.<loopStepName>.loop.index }}.

Ce que les boucles permettent :

  • Itérer sur des collections, des listes ou des tableaux
  • Traitez chaque élément avec element et suivez la position avec les variables index
  • Contrôler le flux de la boucle avec les instructions break et continue
  • Nider les boucles pour le traitement de données complexes

Paramètres

  • for (Obligatoire) : Signale le début de la boucle
  • in (Obligatoire, expression de chaîne) : Expression évaluant à une collection
  • steps (Obligatoire) : Étapes exécutées à chaque itération. Peut inclure n'importe quel type d'étape, y compris les boucles imbriquées

Boucle avec les entrées de workflow

name: myWorkflow
steps:
- name: loopStep
type: loop
for:
in: '${{ .workflowInputs.list }}'
steps:
- name: step1
type: action
action: internal.example.sayHello
version: '1'
inputs:
name: 'Element: ${{ .steps.loopStep.loop.element }}, Index: ${{ .steps.loopStep.loop.index }}'

Notes importantes

  • for: requis. Élément de niveau supérieur indiquant le début de la boucle
  • in: requis. La collection d'entrée doit pouvoir être convertie en tableau Java
  • steps: requis. Les étapes s'exécutent à chaque itération
  • element et index automatiquement attribué par itération de boucle
  • index est basé sur zéro
  • element peut être de type complexe pour les collections complexes
  • Variables de boucle et sorties d'étape accessibles uniquement dans la boucle
  • Variables effacées à la sortie de la boucle et null si elles sont consultées à l'extérieur
  • Les boucles peuvent accéder aux variables définies en dehors de la boucle

Boucle simple sur les entiers

name: myWorkflow
steps:
- name: loopStep
type: loop
for:
in: ${{ [range(1; 6)] }}
steps:
- name: step1
type: action
action: internal.example.sayHello
version: '1'
inputs:
name: 'Element: ${{ .steps.loopStep.loop.element }}, Index: ${{ .steps.loopStep.loop.index }}'

Boucle simple pour la carte

name: myWorkflow
steps:
- name: loopStep
type: loop
for:
in: '${{ [ { "key1": "val1" }, { "key2": "val2"} ] }}'
steps:
- name: step1
type: action
action: internal.example.sayHello
version: '1'
inputs:
name: 'Element: ${{ .steps.loopStep.loop.element }}, Index: ${{ .steps.loopStep.loop.index }}'

Sauter à l'intérieur d'une boucle

Ne sautez qu'entre les étapes nommées dans la même boucle. Sauter dans/hors des boucles, vers des boucles internes/externes ou entre différentes boucles n'est pas autorisé.

name: myWorkflow
steps:
- name: firstStep
type: action
action: internal.example.sayHello
version: '1'
- name: loopStep
type: loop
for:
in: '${{ .workflowInputs.list }}'
steps:
- name: step1
type: action
action: internal.example.sayHello
version: '1'
inputs:
name: '${{ .steps.loopStep.loop.element }}'
next: step3 # Okay within the loop
- name: step2
type: action
action: internal.example.sayHello
version: '1'
inputs:
name: '${{ .steps.step1.outputs.greeting }}'
- name: step3
type: action
action: internal.example.sayHello
version: '1'
next: firstStep # Not okay, first step is not in the loop context

Utilisez break/continue dans une boucle

Modifier le flux de la boucle avec next: break ou next: continue. Ce sont des cibles de saut réservées implicitement définies dans les boucles. En dehors des boucles, elles sautent à la fin du workflow.

end se comporte comme break à l'intérieur des boucles. next fonctionne dans les étapes de commutation ou tout autre type d'étape.

name: myWorkflow
steps:
- name: loopStep
type: loop
for:
in: '${{ [range(1; 6)] }}'
steps:
- name: insideLoopStep1
type: action
action: internal.example.sayHello
version: '1'
inputs:
name: '${{ .steps.loopStep.loop.element }}'
next: continue
- name: insideLoopStep2
type: action
action: internal.example.sayHello
version: '1'
inputs:
name: '${{ .steps.loopStep.loop.element }}'
- name: loopStepAgain
type: loop
for:
in: '${{ .workflowInputs.list }}'
steps:
- name: switchStep
type: switch
switch:
- condition: '${{ .steps.loopStepAgain.loop.index >= 0 }}'
next: break
- name: insideLoopStepAgain
type: action
action: internal.example.sayHello
version: '1'
inputs:
name: '${{ .steps.loopStepAgain.loop.element }}'

Et ensuite ?

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.