Tüm Ürünler
Search
Belge Merkezi

CloudFlow:Map state: inline mode

Son Güncelleme:Oct 06, 2026

Bir iş akışının bir dizideki her öğeye aynı işlem mantığını uygulaması gerektiğinde — örneğin bir sipariş grubunu doğrulamak, görüntü kümesini yeniden boyutlandırmak veya kayıt listesini zenginleştirmek — Map durumu bu işlemi, diziyi yineleyerek ve her öğeyi paralel olarak bir alt akıştan geçirerek gerçekleştirir. Bu süreç, eşzamanlı çalıştırma sağlayan bir foreach döngüsüne benzer. Map durumları varsayılan olarak satır içi modda çalışır. Satır içi mod tek bir düğüme odaklanır ve bir koleksiyondaki her öğenin işlem gerektirdiği senaryolar için uygundur.

Çalışma mekanizması

  1. ItemsPath ifadesini kullanarak girişten bir dizi çıkarın.

  2. Processor içinde tanımlanan durumları çalıştırarak her öğe için bağımsız bir alt akış başlatın.

  3. Tüm alt akışları, MaxConcuccency sınırına kadar paralel olarak çalıştırın.

  4. Tüm alt akışlar tamamlandıktan sonra sonuçları, Items anahtarı altında bir map[string]any çıktısı olarak birleştirin.

Alan referansı

Alan Tür Gerekli Açıklama
Name string Evet Durum adı.
Type string Evet Değeri Map olmalıdır.
ItemsPath string Evet Hedef diziyi giriştenden çıkaran ifade. $Input ve $Context değişkenlerini destekler. Bkz. ItemsPath.
Processor Processor Evet Her dizi öğesi için çalışan alt akış tanımı. Bkz. Processor.
InputConstructor map[string]any Hayır Yinelemeden önce girişi oluşturur veya yeniden şekillendirir. Bkz. Girişler ve çıkışlar.
OutputConstructor map[string]any Hayır Tüm alt akışlar tamamlandıktan sonra birleştirilmiş çıktıyı yeniden şekillendirir. Bkz. Durum OutputConstructor'ı.
MaxConcuccency int Hayır Maksimum paralel alt akış sayısı. Üst sınır 40'tır. Bkz. MaxConcuccency.
Next string Hayır Tamamlandıktan sonra geçiş yapılacak durum. End değeri true ise gerekli değildir.
End bool Hayır Bu durumu geçerli kapsamın sonlandırıcı durumu olarak işaretler.
Retry Retry Hayır Hata yeniden deneme ilkesi. Bkz. Hata işleme.
Catch Catch Hayır Hata yakalama ilkesi. Bkz. Hata işleme.
Description string Hayır Durum açıklaması.

Temel alanlar

ItemsPath

Girişten bir dizi çıkaran ifadedir. İfade bir JSON dizisi döndürürse, Map durumu her öğe üzerinde yineleme yapar ve öğeyi Processor'a bağımsız olarak iletir.

$Input ve $Context ifade değişkenlerini destekler:

$Input.FieldA

Bu ifade, giriştenden FieldA dizisini çıkarır. Her öğe daha sonra ayrı bir paralel alt akışta işlenir.

Processor

Her dizi öğesi için çalışan alt akışı tanımlar.

Alan Tür Gerekli Açıklama
StartAt string Evet Alt akışta çalıştırılacak ilk durum.
States array Evet Alt akışı oluşturan durumlar.

Örnek:

Processor:
  StartAt: Pass1
  States:
    - Type: Pass
      Name: Pass1
      End: true

MaxConcuccency

Paralel olarak çalışan maksimum alt akış sayısıdır. Üst sınır 40'tır.

Örnek

Aşağıdaki akış, üç öğeli bir dizi üzerinde yineleme yapan bir Map durumu tanımlar. Her öğe tek bir Pass durumundan geçer.

Type: StateMachine
Name: my-wkfl
SpecVersion: v1
StartAt: Map1
States:
  - Type: Map
    Name: Map1
    End: true
    InputConstructor:
      FieldA:
        - a: b
        - c: d
        - e: f
    ItemsPath: $Input.FieldA
    Processor:
      StartAt: Pass1
      States:
        - Type: Pass
          Name: Pass1
          End: true

Giriş

InputConstructor aşağıdaki girişi oluşturur:

{
  "FieldA": [
    { "a": "b" },
    { "c": "d" },
    { "e": "f" }
  ]
}

Her yinelemenin aldığı veriler

ItemsPath FieldA dizisini çıkarır. Her alt akış, giriş olarak tek bir öğe alır. Örneğin, ilk yineleme şunu alır:

{
  "a": "b"
}

İkinci yineleme { "c": "d" } değerini, üçüncü yineleme ise { "e": "f" } değerini alır. Üç alt akışın tümü paralel olarak çalışır.

Çıkış

Tüm alt akışlar tamamlandıktan sonra, Map durumu sonuçları Items anahtarı altında birleştirir:

{
  "Items": [
    { "a": "b" },
    { "c": "d" },
    { "e": "f" }
  ]
}

Bu birleştirilmiş çıktıyı yeniden şekillendirmek için OutputConstructor kullanın.