Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola status dan mengubah data
Pelajari tentang Melewati data antar status dengan variabel dan Mengubah data dengan JSONata.
Mesin status ditentukan menggunakan teks JSON yang menunjukkan struktur yang berisi bidang-bidang berikut.
-
Comment
(Opsional) -
Deskripsi tentang mesin status yang dapat dibaca manusia.
-
QueryLanguage
(Opsional; ketika dihilangkan, default ke)JSONPath
-
-
Nama bahasa query yang digunakan oleh mesin negara. Nilai yang diizinkan adalah
JSONPath
danJSONata
. -
Jika tidak disediakan untuk mesin negara, nilai default untuk setiap negara adalah JSONPath.
-
Ketika bahasa kueri mesin status tingkat atas adalah
JSONPath
, masing-masing negara dapat mengganti bahasa kueri dengan QueryLanguage menyetelnya.JSONata
Dengan pendekatan ini, Anda dapat secara bertahap mengonversi mesin status dari JSONPath JSONata satu status pada satu waktu. -
Catatan: Anda tidak dapat mengembalikan mesin status JSONata berbasis tingkat atas ke campuran JSONata dan JSONPath status.
-
-
StartAt
(Wajib) -
String yang harus sama persis (bersifat peka huruf besar kecil) dengan nama salah satu objek status.
TimeoutSeconds
(Opsional)-
Jumlah detik maksimum eksekusi mesin status dapat berjalan. Jika berjalan lebih lama dari waktu yang ditentukan, eksekusi gagal dengan
States.Timeout
Nama kesalahan. -
Version
(Opsional) -
Versi Amazon States Language yang digunakan dalam mesin status (default adalah "1.0").
-
States
(Wajib) -
Objek yang berisi set status yang dibatasi koma.
Bidang States
berisi Status.
{
"State1" : {
},
"State2" : {
},
...
}
Mesin status ditentukan oleh status yang dimilikinya dan hubungan diantaranya.
Berikut adalah contohnya.
{
"Comment": "A Hello World example of the Amazon States Language using a Pass state",
"StartAt": "HelloWorld",
"States": {
"HelloWorld": {
"Type": "Pass",
"Result": "Hello World!",
"End": true
}
}
}
Ketika eksekusi mesin status ini diluncurkan, sistem dimulai dengan status yang direferensikan dalam bidang StartAt
("HelloWorld"
). Jika status ini memiliki bidang "End": true
, eksekusi berhenti dan mengembalikan hasilnya. Jika tidak, sistem mencari bidang "Next":
dan berlanjut dengan status berikutnya. Proses ini berulang sampi sistem mencapai status terminal (status dengan "Type": "Succeed"
, "Type": "Fail"
, atau"End": true
), atau terjadi kesalahan waktu aktif.
Aturan berikut berlaku untuk status dalam mesin status:
-
Status dapat muncul dalam urutan apa pun dalam blok terlampir, tetapi urutan daftarnya tidak memengaruhi urutan status berjalan. Isi status menentukan urutan ini.
-
Dalam mesin status, hanya ada satu status yang ditetapkan sebagai status
start
, yang ditetapkan oleh nilai bidangStartAt
dalam struktur tingkat atas. Status ini adalah salah satu yang dijalankan pertama ketika eksekusi dimulai. -
Setiap status dengan bidang
End
adalahtrue
dianggap sebagai statusend
(atauterminal
). Tergantung pada logika mesin status Anda—misalnya, jika mesin status Anda memiliki beberapa cabang eksekusi—Anda mungkin memiliki lebih dari satu statusend
. -
Jika mesin status Anda hanya terdiri dari satu status, maka dapat menjadi status
start
dan statusend
.
Bidang status umum dalam alur kerja
Bidang berikut adalah umum untuk semua elemen negara.
-
Type
(Wajib) -
Tipe status.
QueryLanguage
(Opsional; ketika dihilangkan, default ke)JSONPath
-
-
Nama bahasa query yang digunakan oleh negara. Nilai yang diizinkan adalah
JSONPath
danJSONata
. -
Ketika bahasa kueri mesin status tingkat atas adalah
JSONPath
, masing-masing negara dapat mengganti bahasa kueri dengan QueryLanguage menyetelnya.JSONata
Dengan pendekatan ini, Anda dapat secara bertahap mengonversi mesin status dari JSONPath JSONata satu status pada satu waktu.
-
-
Next
-
Nama status berikutnya yang dijalankan ketika status saat ini selesai. Beberapa tipe status, seperti
Choice
, mengizinkan beberapa status transisi.Jika status saat ini adalah status terakhir dalam alur kerja Anda, atau status terminal, seperti Status alur kerja yang berhasil atauStatus alur kerja gagal, Anda tidak perlu menentukan
Next
bidang. -
End
-
Menunjuk status ini sebagai status terminal (mengakhiri eksekusi) jika diatur ke
true
. Jumlah status terminal per mesin status bisa berapa saja. Hanya satuNext
atauEnd
yang dapat digunakan dalam suatu status. Beberapa jenis status, sepertiChoice
, atau status terminal, seperti Status alur kerja yang berhasil danStatus alur kerja gagal, tidak mendukung atau menggunakanEnd
bidang. -
Comment
(Opsional) -
Menyediakan deskripsi tentang mesin status yang dapat dibaca manusia.
-
Assign
(Opsional) -
Digunakan untuk menyimpan variabel.
Assign
Bidang menerima objek JSON dengan pasangan kunci/nilai yang menentukan 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.
-
Output
(Opsional, JSONata hanya) -
Digunakan untuk menentukan dan mengubah output dari negara. Ketika ditentukan, nilai mengesampingkan default output status.
Bidang output menerima nilai JSON (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 {%%}.
Output juga menerima JSONata ekspresi secara langsung, misalnya: “Output”: “{% jsonata expression%}”
Untuk informasi selengkapnya, lihat Pemrosesan Input dan Output.
-
InputPath
(Opsional, JSONPath hanya) -
Jalur yang memilih sebagian input status yang akan diteruskan ke tugas status untuk pemrosesan. Jika dihilangkan, jalur memiliki nilai
$
yang menunjuk seluruh input. Untuk informasi selengkapnya, lihat Pemrosesan Input dan Output. -
OutputPath
(Opsional, JSONPath hanya) -
Jalur yang memilih sebagian dari output negara untuk diteruskan ke status berikutnya. Jika dihilangkan, ia memiliki nilai
$
yang menunjuk seluruh output. Untuk informasi selengkapnya, lihat Pemrosesan Input dan Output.