

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan status Peta dalam mode Inline dalam alur kerja Step Functions
<a name="state-map-inline"></a>

**Mengelola status dan mengubah data**  
Pelajari tentang [Melewati data antar status dengan variabel](workflow-variables.md) dan [Mengubah data dengan JSONata](transforming-data.md).

Secara default, `Map` status berjalan dalam mode **Inline**. Dalam mode Inline, status Peta hanya menerima array JSON sebagai input. Ia menerima array ini dari langkah sebelumnya dalam alur kerja. Dalam mode ini, setiap iterasi `Map` status berjalan dalam konteks alur kerja yang berisi status. `Map` Step Functions menambahkan riwayat eksekusi iterasi ini ke riwayat eksekusi alur kerja induk.

Dalam mode ini, `Map` status mendukung hingga 40 iterasi bersamaan.

`Map`Status yang disetel ke **Inline** dikenal sebagai status *Peta Inline*. Gunakan `Map` status dalam mode Inline jika riwayat eksekusi alur kerja Anda tidak akan melebihi 25.000 entri, atau jika Anda tidak memerlukan lebih dari 40 iterasi bersamaan.

Untuk pengenalan menggunakan *status Peta Inline*, lihat tutorialnya[Ulangi tindakan dengan Peta Inline](tutorial-map-inline.md).

**Topics**
+ [

## Konsep kunci dalam topik ini
](#key-concepts-inline-map)
+ [

## Bidang status Peta Inline
](#map-state-inline-additional-fields)
+ [

## Bidang usang
](#map-state-inline-deprecated-fields)
+ [

## Contoh status Peta Inline () JSONPath
](#inline-map-state-examples)
+ [

## Contoh status Peta Sebaris dengan `ItemSelector`
](#inline-map-state-example-params)
+ [

## Pemrosesan input dan output `Map` status sebaris
](#inline-map-state-output)

## Konsep kunci dalam topik ini
<a name="key-concepts-inline-map"></a>

**Modus sebaris**  
Mode konkurensi terbatas dari negara. `Map` Dalam mode ini, setiap iterasi `Map` status berjalan dalam konteks alur kerja yang berisi status. `Map` Step Functions menambahkan riwayat eksekusi iterasi ini ke riwayat eksekusi alur kerja induk. `Map`status berjalan dalam mode Inline secara default.  
Mode ini hanya menerima array JSON sebagai input dan mendukung hingga 40 iterasi bersamaan.

**Status Peta Sebaris**  
`Map`Status diatur ke mode **Inline**.

**Alur kerja peta**  
Kumpulan langkah-langkah yang dijalankan oleh `Map` state untuk setiap iterasi.

**Iterasi status peta**  
Pengulangan alur kerja yang didefinisikan di dalam negara bagian. `Map`

## Bidang status Peta Inline
<a name="map-state-inline-additional-fields"></a>

Untuk menggunakan *status Peta Sebaris* dalam alur kerja Anda, tentukan satu atau beberapa bidang ini. Anda menentukan bidang ini selain [bidang status umum](statemachine-structure.md#amazon-states-language-common-fields).

**`Type` (Wajib)**  
Menetapkan jenis negara, seperti`Map`.

**`ItemProcessor` (Wajib)**  
Berisi objek JSON berikut yang menentukan mode pemrosesan `Map` status dan definisi.  
Definisi tersebut berisi serangkaian langkah yang harus diulang untuk memproses setiap item array.  
+ `ProcessorConfig`— Objek JSON opsional yang menentukan mode pemrosesan untuk negara. `Map` Objek ini berisi `Mode` sub-bidang. Bidang ini default ke`INLINE`, yang menggunakan `Map` status dalam mode Inline.

  Dalam mode ini, kegagalan iterasi apa pun menyebabkan `Map` status gagal. Semua iterasi berhenti ketika `Map` status gagal.
+ `StartAt`- Menentukan string yang menunjukkan keadaan pertama dalam alur kerja. String ini peka huruf besar/kecil dan harus cocok dengan nama salah satu objek state. Status ini berjalan pertama kali untuk setiap item dalam kumpulan data. Masukan eksekusi apa pun yang Anda berikan ke `Map` status akan diteruskan ke `StartAt` status terlebih dahulu.
+ `States`[— Objek JSON yang berisi kumpulan status yang dibatasi koma.](workflow-states.md) Dalam objek ini, Anda mendefinisikan[Map workflow](#mapwflow).
**catatan**  
Negara-negara di `ItemProcessor` lapangan hanya dapat bertransisi satu sama lain. Tidak ada negara bagian di luar `ItemProcessor` lapangan yang dapat beralih ke keadaan di dalamnya.
`ItemProcessor`Bidang menggantikan bidang yang sekarang tidak digunakan lagi. `Iterator` Meskipun Anda dapat terus menyertakan `Map` status yang menggunakan `Iterator` bidang ini, kami sangat menyarankan Anda mengganti bidang ini dengan`ItemProcessor`.  
[Step Functions Local](sfn-local.md) saat ini tidak mendukung `ItemProcessor` bidang. Kami menyarankan Anda menggunakan `Iterator` bidang dengan Step Functions Local.

**`Items`(Opsional, JSONata hanya)**  
Sebuah array JSON atau JSONata ekspresi yang harus mengevaluasi ke array.

**`ItemsPath`(Opsional, JSONPath hanya)**  
Menentukan [jalur referensi](amazon-states-language-paths.md#amazon-states-language-reference-paths) menggunakan [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)sintaks. Path ini memilih node JSON yang berisi array item di dalam input status. Untuk informasi selengkapnya, lihat [ItemsPath (Peta, JSONPath hanya)](input-output-itemspath.md).

**`ItemSelector` (Opsional)**  
Mengganti nilai item array input sebelum diteruskan ke setiap iterasi `Map` status.  
Di bidang ini, Anda menentukan JSON valid yang berisi kumpulan pasangan kunci-nilai. Pasangan ini dapat berisi salah satu dari berikut ini:  
+ Nilai statis yang Anda tentukan dalam definisi mesin status Anda.
+ Nilai yang dipilih dari input status menggunakan [jalur](amazon-states-language-paths.md).
+ Nilai diakses dari [objek konteks](input-output-contextobject.md).
 Untuk informasi selengkapnya, lihat [ItemSelector (Peta)](input-output-itemselector.md).  
`ItemSelector`Bidang menggantikan bidang yang sekarang tidak digunakan lagi. `Parameters` Meskipun Anda dapat terus menyertakan `Map` status yang menggunakan `Parameters` bidang ini, kami sangat menyarankan Anda mengganti bidang ini dengan`ItemSelector`.

**`MaxConcurrency` (Opsional)**  
Menentukan nilai integer yang menyediakan batas atas pada jumlah iterasi `Map` negara yang dapat berjalan secara paralel. Misalnya, `MaxConcurrency` nilai 10 membatasi `Map` status menjadi 10 iterasi bersamaan yang berjalan pada satu waktu.  
 Di JSONata negara bagian, Anda dapat menentukan JSONata ekspresi yang mengevaluasi ke bilangan bulat.  
Perulangan bersamaan mungkin terbatas. Ketika ini terjadi, beberapa iterasi tidak akan dimulai sampai iterasi sebelumnya selesai. Kemungkinan hal ini terjadi meningkat ketika array input Anda memiliki lebih dari 40 item.  
Untuk mencapai konkurensi yang lebih tinggi, pertimbangkan[Mode terdistribusi](state-map-distributed.md).
Nilai defaultnya adalah`0`, yang tidak membatasi konkurensi. Step Functions memanggil iterasi serempak mungkin.   
`MaxConcurrency`Nilai dari `1` memanggil `ItemProcessor` sekali untuk setiap elemen array. Item dalam array diproses dalam urutan penampilan mereka dalam input. Step Functions tidak memulai iterasi baru sampai menyelesaikan iterasi sebelumnya.

**`MaxConcurrencyPath`(Opsional, JSONPath hanya)**  
Jika Anda ingin memberikan nilai konkurensi maksimum secara dinamis dari input status menggunakan jalur referensi, gunakan. `MaxConcurrencyPath` Ketika diselesaikan, jalur referensi harus memilih bidang yang nilainya adalah bilangan bulat non-negatif.  
Suatu `Map` negara tidak dapat mencakup keduanya `MaxConcurrency` dan`MaxConcurrencyPath`.

**`ResultPath`(Opsional, JSONPath hanya)**  
Menentukan di mana di input untuk menyimpan output dari iterasi `Map` negara. Status Peta kemudian menyaring input seperti yang ditentukan oleh [`OutputPath`](input-output-example.md#input-output-outputpath)bidang, jika ditentukan. Kemudian, ia menggunakan input yang difilter sebagai output negara. Untuk informasi selengkapnya, lihat [Pemrosesan Input dan Output](concepts-input-output-filtering.md).

**`ResultSelector`(Opsional, JSONPath hanya)**  
Lewati kumpulan pasangan nilai kunci, di mana nilainya statis atau dipilih dari hasilnya. Untuk informasi selengkapnya, lihat [ResultSelector](input-output-inputpath-params.md#input-output-resultselector).  
Jika status Paralel atau Peta yang Anda gunakan di mesin status Anda mengembalikan array array, Anda dapat mengubahnya menjadi array datar dengan [ResultSelector](input-output-inputpath-params.md#input-output-resultselector) bidang. Untuk informasi selengkapnya, lihat [Meratakan array array](input-output-inputpath-params.md#flatten-array-of-arrays-result-selector).

**`Retry` (Opsional)**  
Array objek, yang disebut Retriers, yang mendefinisikan kebijakan coba lagi. Status menggunakan kebijakan coba lagi ketika mereka menemukan kesalahan runtime. Untuk informasi selengkapnya, lihat [Contoh mesin negara menggunakan Coba Ulang dan Tangkap](concepts-error-handling.md#error-handling-examples).  
Jika Anda mendefinisikan Retrier untuk *status Peta Sebaris*, kebijakan coba lagi berlaku untuk semua iterasi `Map` status, bukan hanya iterasi yang gagal. Misalnya, `Map` status Anda berisi dua iterasi yang berhasil dan satu iterasi gagal. Jika Anda telah menentukan `Retry` bidang untuk `Map` status, kebijakan coba lagi berlaku untuk ketiga iterasi `Map` status, bukan hanya iterasi yang gagal.

**`Catch` (Opsional)**  
Array objek, disebut Catch yang menentukan status fallback. Status menjalankan penangkap jika mereka mengalami kesalahan runtime dan tidak memiliki kebijakan coba lagi, atau kebijakan coba ulang mereka habis. Untuk informasi selengkapnya, lihat [Status Fallback](concepts-error-handling.md#error-handling-fallback-states).

**`Output`(Opsional, JSONata hanya)**  
Digunakan untuk menentukan dan mengubah output dari negara. Ketika ditentukan, nilai mengesampingkan default output status.   
Bidang output menerima nilai JSON apa pun (objek, array, string, angka, boolean, null). Nilai string apa pun, termasuk yang ada di dalam objek atau array, akan dievaluasi JSONata seolah-olah dikelilingi oleh karakter \$1%%\$1.  
 Output juga menerima JSONata ekspresi secara langsung, misalnya: “Output”: “\$1% jsonata expression%\$1”   
Untuk informasi selengkapnya, lihat [Mengubah data dengan Step JSONata Functions](transforming-data.md).

** `Assign` (Opsional)**  
Digunakan untuk menyimpan variabel. `Assign`Bidang menerima objek JSON dengan key/value pasangan yang mendefinisikan nama variabel dan nilai yang ditetapkan. Nilai string apa pun, termasuk yang ada di dalam objek atau array, akan dievaluasi seperti JSONata ketika dikelilingi oleh karakter `{% %}`  
Untuk informasi selengkapnya, lihat [Melewati data antar negara bagian dengan variabel](workflow-variables.md).

## Bidang usang
<a name="map-state-inline-deprecated-fields"></a>

**catatan**  
Meskipun Anda dapat terus menyertakan `Map` status yang menggunakan bidang berikut, kami sangat menyarankan Anda mengganti `Iterator` dengan `ItemProcessor` dan `Parameters` dengan`ItemSelector`.

** `Iterator`**  
Menentukan objek JSON yang mendefinisikan satu set langkah-langkah yang memproses setiap elemen array.

**`Parameters`**  
Menentukan koleksi pasangan kunci-nilai, di mana nilai-nilai dapat berisi salah satu dari berikut:  
+ Nilai statis yang Anda tentukan dalam definisi mesin status Anda.
+ Nilai yang dipilih dari input menggunakan [jalur](amazon-states-language-paths.md).

## Contoh status Peta Inline () JSONPath
<a name="inline-map-state-examples"></a>

Pertimbangkan data input berikut untuk `Map` status yang berjalan dalam mode **Inline**.

```
{
  "ship-date": "2016-03-14T01:59:00Z",
  "detail": {
    "delivery-partner": "UQS",
    "shipped": [
      { "prod": "R31", "dest-code": 9511, "quantity": 1344 },
      { "prod": "S39", "dest-code": 9511, "quantity": 40 },
      { "prod": "R31", "dest-code": 9833, "quantity": 12 },
      { "prod": "R40", "dest-code": 9860, "quantity": 887 },
      { "prod": "R40", "dest-code": 9511, "quantity": 1220 }
    ]
  }
}
```

Mengingat masukan sebelumnya, `Map` status dalam contoh berikut memanggil AWS Lambda fungsi bernama `ship-val` sekali untuk setiap item array di `shipped` bidang. 

```
"Validate All": {
    "Type": "Map",
    "InputPath": "$.detail",
    "ItemProcessor": {
        "ProcessorConfig": {
            "Mode": "INLINE"
        },
        "StartAt": "Validate",
        "States": {
            "Validate": {
                "Type": "Task",
                "Resource": "arn:aws:states:::lambda:invoke",
                "OutputPath": "$.Payload",
                "Parameters": {
                    "FunctionName": "arn:aws:lambda:us-east-2:account-id:function:ship-val:$LATEST"
                },
                "End": true
            }
        }
    },
    "End": true,
    "ResultPath": "$.detail.shipped",
    "ItemsPath": "$.shipped"
}
```

Setiap iterasi `Map` status mengirimkan item dalam array, dipilih dengan [`ItemsPath`](input-output-itemspath.md)bidang, sebagai input ke fungsi `ship-val` Lambda. Nilai-nilai berikut adalah contoh masukan yang dikirimkan `Map` status ke pemanggilan fungsi Lambda:

```
{
  "prod": "R31",
  "dest-code": 9511,
  "quantity": 1344
}
```

Setelah selesai, output status `Map` adalah array JSON, saat setiap item adalah output dari perulangan. Dalam hal ini, array ini berisi output dari fungsi `ship-val` Lambda.

## Contoh status Peta Sebaris dengan `ItemSelector`
<a name="inline-map-state-example-params"></a>

Misalkan fungsi `ship-val` Lambda pada contoh sebelumnya juga membutuhkan informasi tentang kurir pengiriman. Informasi ini merupakan tambahan untuk item dalam array untuk setiap iterasi. Anda dapat menyertakan informasi dari input, bersama dengan informasi khusus untuk iterasi `Map` status saat ini. Perhatikan `ItemSelector` bidang dalam contoh berikut:

```
"Validate-All": {
  "Type": "Map",
  "InputPath": "$.detail",
  "ItemsPath": "$.shipped",
  "MaxConcurrency": 0,
  "ResultPath": "$.detail.shipped",
  "ItemSelector": {
    "parcel.$": "$$.Map.Item.Value",
    "courier.$": "$.delivery-partner"
  },
  "ItemProcessor": {
    "StartAt": "Validate",
    "States": {
      "Validate": {
        "Type": "Task",
	"Resource": "arn:aws:lambda:region:account-id:function:ship-val",
        "End": true
      }
    }
  },
  "End": true
}
```

`ItemSelector`Blok menggantikan input ke iterasi dengan node JSON. Node ini berisi data item saat ini dari [objek Konteks](input-output-contextobject.md#contextobject-map) dan informasi kurir dari `delivery-partner` bidang input `Map` status. Berikut ini adalah contoh input ke iterasi tunggal. `Map`Status meneruskan input ini ke pemanggilan fungsi Lambda`ship-val`.

```
{
  "parcel": {
    "prod": "R31",
    "dest-code": 9511,
    "quantity": 1344
   },
   "courier": "UQS"
}
```

Dalam contoh *status Peta Inline* sebelumnya, `ResultPath` bidang menghasilkan output dalam format yang sama dengan input. Namun, ia menimpa `detail.shipped` bidang dengan array di mana setiap elemen adalah output dari setiap pemanggilan Lambda `ship-val` iterasi.

Untuk informasi selengkapnya tentang penggunaan *status Peta Sebaris* dan bidangnya, lihat berikut ini.
+ [Ulangi tindakan dengan Peta Inline](tutorial-map-inline.md)
+ [Memproses input dan output di Step Functions](concepts-input-output-filtering.md)
+ [ItemsPath (Peta, JSONPath hanya)](input-output-itemspath.md)
+ [Data objek konteks untuk status Peta](input-output-contextobject.md#contextobject-map)

## Pemrosesan input dan output `Map` status sebaris
<a name="inline-map-state-output"></a>

Untuk `Map` status tertentu, [`InputPath`](input-output-inputpath-params.md#input-output-inputpath)pilih subset dari masukan negara.

Masukan dari sebuah `Map` negara harus menyertakan array JSON. `Map`Status menjalankan `ItemProcessor` bagian satu kali untuk setiap item dalam array. Jika Anda menentukan [`ItemsPath`](input-output-itemspath.md)bidang, `Map` status memilih di mana di input untuk menemukan array untuk diulang. Jika tidak ditentukan, nilai `ItemsPath` berupa `$`, dan bagian `ItemProcessor` berharap agar array adalah satu-satunya input. Jika Anda menentukan `ItemsPath` bidang, nilainya harus berupa [Jalur Referensi](amazon-states-language-paths.md#amazon-states-language-reference-paths). `Map`Status menerapkan jalur ini ke input efektif setelah menerapkan`InputPath`. `ItemsPath`Harus mengidentifikasi bidang yang nilainya adalah array JSON.

Masukan untuk setiap iterasi, secara default, adalah elemen tunggal dari bidang array yang diidentifikasi oleh `ItemsPath` nilai. Anda dapat mengganti nilai ini dengan `ItemSelector (Peta)` bidang.

Setelah selesai, output status `Map` adalah array JSON, saat setiap item adalah output dari perulangan.

 Untuk informasi selengkapnya tentang input dan output status Peta Inline, lihat berikut ini:
+ [Ulangi tindakan dengan Peta Inline](tutorial-map-inline.md)
+ [Contoh status Peta Sebaris dengan `ItemSelector`](#inline-map-state-example-params)
+ [Memproses input dan output di Step Functions](concepts-input-output-filtering.md)
+ [Data objek konteks untuk status Peta](input-output-contextobject.md#contextobject-map)
+ [Memproses data dari antrian dengan status Peta di Step Functions](sample-map-state.md)