All Products
Search
Document Center

CloudFlow:Langkah Foreach

Last Updated:Jun 29, 2025

Tema ini menjelaskan langkah foreach beserta contoh terkait.

Ikhtisar

Langkah foreach menelusuri parameter bertipe array dalam input dan menjalankan langkah serial untuk setiap elemen dalam array secara paralel. Langkah ini mirip dengan foreach dalam bahasa pemrograman, tetapi iterasinya dijalankan secara paralel.

Setiap iterasi dari langkah foreach sesuai dengan variabel lokal. Dalam langkah foreach, langkah serial untuk setiap elemen dalam parameter input dieksekusi secara paralel. Langkah serial ini mengubah variabel lokal yang sesuai dengan iterasinya. Setelah semua iterasi selesai, pemetaan output dapat digunakan untuk mengonversi array variabel lokal menjadi output dari langkah foreach.

Catatan Jumlah maksimum langkah serial yang dapat dieksekusi secara bersamaan dalam langkah foreach adalah 100.

Langkah foreach mencakup atribut berikut:

  • tipe: Wajib. Jenis langkah. Nilai foreach menunjukkan bahwa langkah tersebut adalah langkah foreach.
  • nama: Wajib. Nama langkah.
  • iterationMapping: Wajib. Pemetaan iteratif.
    • collection: Wajib. Parameter input yang berfungsi sebagai koleksi untuk langkah foreach.
    • item: Wajib. Nama elemen saat ini yang dimasukkan ke dalam input iterasi.
    • index: Opsional. Nama posisi saat ini yang dimasukkan ke dalam input iterasi.
  • langkah: Wajib. Langkah serial.
  • akhir: Opsional. Menentukan apakah akan melanjutkan ke langkah-langkah berikutnya setelah langkah saat ini selesai.
  • inputMappings: Opsional. Pemetaan input.
  • outputMappings: Opsional. Pemetaan output. Dalam langkah ini, $local adalah sebuah array. Setiap elemen dalam array adalah objek JSON yang mencatat hasil dari setiap iterasi.
    Catatan Jika tidak ada pemetaan output yang ditentukan, langkah ini tidak memiliki output secara default.

Contoh

Alur sampel berikut mendefinisikan langkah foreach yang berisi langkah tugas.

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            
  • Informasi berikut adalah input alur. Tidak ada pemetaan input yang ditentukan untuk langkah myforeach. Oleh karena itu, inputnya sama dengan input alur.
    {
      "names": ["a", "b", "c"]
    }            
  • Tidak ada pemetaan input yang didefinisikan untuk toUpperCase. Oleh karena itu, inputnya sama dengan input langkah induk. Menurut iterationMapping, sistem memasukkan elemen saat ini (a, b, dan c secara berurutan) sebagai nilai dan name sebagai kunci pada setiap iterasi.
    {
      "name": "a",
      "names":["a","b","c"]
    }
    {
      "name": "b",
      "names":["a","b","c"]
    }
    {
      "name": "c",
      "names":["a","b","c"]
    }           
  • toUpperCase dijalankan tiga kali, dengan output berikut secara berurutan:
    {
      "name": "A"
    }
    {
      "name": "B"
    }
    {
      "name": "C"
    }            
  • Variabel lokal dari myforeach adalah sebuah array, dengan nilai berikut:
    [
      {
        "name": "A"
      },
      {
        "name": "B"
      },
      {
        "name": "C"
      }
    ]            
  • Informasi berikut adalah output dari myforeach. Tidak ada pemetaan output atau hasil yang didefinisikan untuk alur. Oleh karena itu, outputnya adalah output akhir alur.
    {
      "names": ["A", "B", "C"]
    }