ItemsPath (Peta, JSONPath hanya) - AWS Step Functions

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

ItemsPath (Peta, JSONPath hanya)

Mengelola status dan mengubah data

Halaman ini mengacu pada JSONPath. Step Functions baru-baru ini menambahkan variabel dan JSONata untuk mengelola status dan mengubah data.

Pelajari tentang Melewati data dengan variabel dan Mengubah data dengan JSONata.

Dalam keadaan JSONPath berbasis, gunakan ItemsPath bidang untuk memilih array atau objek dalam input JSON yang diberikan ke Map status. Secara default, Map status disetel ItemsPath ke$, yang memilih seluruh input.

  • Jika input ke Map status adalah array JSON, ia menjalankan iterasi untuk setiap item dalam array, meneruskan item itu ke iterasi sebagai input

  • Jika input ke Map status adalah objek JSON, ia menjalankan iterasi untuk setiap pasangan kunci-nilai dalam objek, meneruskan pasangan ke iterasi sebagai input

catatan

Anda dapat menggunakan ItemsPath dalam status Peta Terdistribusi hanya jika Anda menggunakan input JSON yang diteruskan dari status sebelumnya dalam alur kerja.

Nilai ItemsPath harus berupa Jalur Referensi, dan jalur itu harus mengevaluasi ke array atau objek JSON. Misalnya, pertimbangkan input ke status Map yang mencakup dua array, seperti contoh berikut.

{ "ThingsPiratesSay": [ { "say": "Avast!" }, { "say": "Yar!" }, { "say": "Walk the Plank!" } ], "ThingsGiantsSay": [ { "say": "Fee!" }, { "say": "Fi!" }, { "say": "Fo!" }, { "say": "Fum!" } ] }

Dalam hal ini, Anda dapat menentukan array mana yang akan digunakan untuk iterasi Map status dengan memilihnya. ItemsPath Definisi mesin status berikut menentukan ThingsPiratesSay array dalam input menggunakan ItemsPath .It kemudian menjalankan iterasi status SayWord pass untuk setiap item dalam array. ThingsPiratesSay

{ "StartAt": "PiratesSay", "States": { "PiratesSay": { "Type": "Map", "ItemsPath": "$.ThingsPiratesSay", "ItemProcessor": { "StartAt": "SayWord", "States": { "SayWord": { "Type": "Pass", "End": true } } }, "End": true } } }

Untuk objek JSON bersarang, Anda dapat menggunakan ItemsPath untuk memilih objek tertentu dalam input. Pertimbangkan masukan berikut dengan data konfigurasi bersarang:

{ "environment": "production", "servers": { "web": { "server1": {"port": 80, "status": "active"}, "server2": {"port": 8080, "status": "inactive"} }, "database": { "primary": {"host": "db1.example.com", "port": 5432}, "replica": {"host": "db2.example.com", "port": 5432} } } }

Untuk mengulangi objek server web, Anda akan mengatur ItemsPath ke$.servers.web:

{ "StartAt": "ProcessWebServers", "States": { "ProcessWebServers": { "Type": "Map", "ItemsPath": "$.servers.web", "ItemProcessor": { "StartAt": "CheckServer", "States": { "CheckServer": { "Type": "Pass", "End": true } } }, "End": true } } }

Saat memproses input, Map status berlaku ItemsPath setelahnya InputPath. Ini beroperasi pada input efektif ke negara setelah InputPath menyaring input.

Untuk informasi selengkapnya tentang status Map, lihat hal berikut: