• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

ループ構造

ループを使用してリスト、マップ、またはコレクションを反復処理します。

ループはinで定義されたコレクションを反復処理し、反復ごとにindexおよびelement変数を自動的に作成します。JQ 式${{ .steps.<loopStepName>.loop.element }}または${{ .steps.<loopStepName>.loop.index }}を使用してこれらにアクセスします。

ループによって可能になるもの:

  • コレクション、リスト、配列を反復処理する
  • 各項目をelementで処理し、 index変数で位置を追跡します
  • breakおよびcontinueステートメントによるループフローの制御
  • 複雑なデータ処理のためのネストループ

パラメーター

  • for (必須): ループ開始を通知します
  • in (必須、文字列式): コレクションに評価される式
  • steps (必須): 各反復で実行されるステップ。ネストされたループを含む任意のステップタイプを含めることができます

ワークフロー入力によるループ

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

重要な注意事項

  • for: 必須。ループの開始を示す最上位要素
  • in: 必須。入力コレクションはJava配列にキャスト可能でなければなりません
  • steps: 必須。ステップは各反復を実行する
  • element indexはループの反復ごとに自動的に割り当てられます
  • index ゼロベース
  • element 複雑なコレクションの場合は複合型になる
  • ループ変数とステップ出力はループ内でのみアクセス可能
  • 変数はループ終了時にクリアされ、外部からアクセスした場合はnullになります
  • ループはループ外で定義された変数にアクセスできる

整数の単純なループ

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

マップのシンプルなループ

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

ループ内でジャンプする

同じループ内の名前付きステップ間でのみジャンプします。ループ内/ループ外、内部/外部ループ、または異なるループ間でのジャンプは許可されません。

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

ループ内でbreak/continueを使用する

ループフローをnext: breakまたはnext: continueで変更します。これらはループ内で暗黙的に定義された予約済みのジャンプ ターゲットです。ループ外では、ワークフローの終了にジャンプします。

end ループ内ではbreakとして動作します。nextスイッチ ステップまたは任意のステップ タイプで機能します。

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

次のステップ

Copyright © 2026 New Relic株式会社。

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