• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Estructura de bucle

Itere a través de listas, mapas o colecciones usando bucles.

Los bucles iteran sobre colecciones definidas por in, creando automáticamente las variables index y element para cada iteración. Acceda a estos con la expresión JQ ${{ .steps.<loopStepName>.loop.element }} o ${{ .steps.<loopStepName>.loop.index }}.

Qué habilitan los bucles:

  • Itere sobre colecciones, listas o arrays
  • Procesar cada elemento con element y rastrear la posición con las variables index
  • Controle el flujo del bucle con las sentencias break y continue
  • Anidar bucles para el procesamiento de datos complejos

Parámetros

  • for (Obligatorio): Señala el inicio del bucle
  • in (Requerido, expresión de cadena): Expresión que evalúa una colección
  • steps (Requerido): Pasos ejecutados en cada iteración. Puede incluir cualquier tipo de paso, incluidos los bucles anidados

Bucle con entradas de flujo de trabajo

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 }}'

Notas importantes

  • for: requerido. Elemento de nivel superior que indica el inicio del bucle
  • in: requerido. La colección de entrada debe poder convertirse en una matriz de Java
  • steps: requerido. Los pasos se ejecutan en cada iteración
  • element y index asignado automáticamente por cada iteración del bucle
  • index está basado en cero
  • element puede ser de tipo complejo para colecciones complejas
  • Las variables de bucle y las salidas de pasos solo son accesibles dentro del bucle
  • Variables borradas al salir del bucle y nulas si se accede a ellas fuera
  • Los bucles pueden acceder a variables definidas fuera del bucle.

Bucle simple en enteros

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 }}'

Bucle simple para el mapa

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 }}'

Saltar dentro de un bucle

Solo salte entre pasos nombrados dentro del mismo bucle. No se permite saltar dentro/fuera de bucles, a bucles internos/externos o entre diferentes bucles.

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

Emplee break/continue en un bucle

Cambie el flujo del bucle con next: break o next: continue. Estos son destinos de salto reservados implícitamente definidos dentro de los bucles. Fuera de los bucles, saltan al final del flujo de trabajo.

end se comporta como break dentro de los bucles. next funciona en pasos de conmutación o cualquier tipo de paso.

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 }}'

Que sigue

Copyright © 2026 New Relic Inc.

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