Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pelajari tentang state machine di Step Functions
Step Functions didasarkan pada mesin dan tugas negara. Dalam Step Functions, state machine disebut alur kerja, yang merupakan serangkaian langkah yang digerakkan oleh peristiwa. Setiap langkah dalam alur kerja disebut status. Misalnya, status Tugas mewakili unit kerja yang dilakukan AWS layanan lain, seperti memanggil yang lain AWS layanan atauAPI. Contoh menjalankan alur kerja yang melakukan tugas disebut eksekusi di Step Functions.
![Contoh ilustrasi diagram alur kerja Step Functions.](images/step-functions-example.png)
Pengantar mesin negara
Konsep utama
Berikut ini memberikan ikhtisar istilah kunci Step Functions untuk konteks.
Istilah | Deskripsi |
---|---|
Alur kerja | Urutan langkah-langkah yang sering mencerminkan proses bisnis. |
Status |
Langkah-langkah individual di mesin negara Anda yang dapat membuat keputusan berdasarkan masukannya, melakukan tindakan dari input tersebut, dan meneruskan output ke status lain. Untuk informasi selengkapnya, lihat Menemukan status alur kerja untuk digunakan dalam Step Functions. |
Workflow Studio |
Desainer alur kerja visual yang membantu Anda membuat prototipe dan membangun alur kerja lebih cepat. Untuk informasi selengkapnya, lihat Mengembangkan alur kerja di Step Functions Workflow Studio. |
Mesin negara | Alur kerja yang didefinisikan menggunakan JSON teks yang mewakili masing-masing status atau langkah dalam alur kerja bersama dengan bidang, seperti Untuk informasi selengkapnya, lihat Menyatakan struktur mesin di Amazon States Language untuk alur kerja Step Functions. |
Amazon States Language |
Bahasa JSON berbasis dan terstruktur yang digunakan untuk mendefinisikan mesin negara Anda. DenganASL, Anda menentukan kumpulan status yang dapat melakukan pekerjaan (Taskstatus), menentukan status mana yang akan dialihkan ke next (Choicestate), dan menghentikan eksekusi dengan error (Failstate). Untuk informasi selengkapnya, lihat Menggunakan Amazon States Language untuk menentukan alur kerja Step Functions. |
Konfigurasi input dan output |
Status dalam alur kerja menerima JSON data sebagai input dan biasanya meneruskan JSON data sebagai output ke status berikutnya. Step Functions menyediakan filter untuk mengontrol aliran data antar negara. Untuk informasi selengkapnya, lihat Memproses input dan output di Step Functions. |
Integrasi layanan |
Anda dapat memanggil API tindakan AWS layanan dari alur kerja Anda. Untuk informasi selengkapnya, lihat Mengintegrasikan layanan lain dengan Step Functions. |
Jenis integrasi layanan |
|
Pola integrasi layanan | Saat memanggil AWS layanan, Anda menggunakan salah satu pola integrasi layanan berikut:
|
Eksekusi |
Eksekusi mesin status adalah instans tempat Anda menjalankan alur kerja untuk melakukan tugas. Untuk informasi selengkapnya, lihat Memulai eksekusi mesin status di Step Functions. |
Data Mesin Status
Data mesin status mengambil bentuk berikut:
-
Input awal ke dalam mesin status
-
Data yang diteruskan di antara status
-
Output dari mesin status
Bagian ini menjelaskan cara data mesin status diformat dan digunakan dalam AWS Step Functions.
Format Data
Data mesin negara diwakili oleh JSON teks. Anda dapat memberikan nilai ke mesin status menggunakan tipe data apa pun yang didukung olehJSON.
catatan
-
Angka dalam format JSON teks sesuai dengan JavaScript semantik. Angka-angka ini biasanya sesuai dengan presisi ganda IEEE-854 nilai
. -
Berikut ini adalah JSON teks yang valid:
-
String mandiri dan dibatasi kutipan
-
Objek
-
Array
-
Nomor
-
Nilai Boolean
-
null
-
-
Output dari suatu negara menjadi masukan untuk keadaan berikutnya. Namun, Anda dapat membatasi status untuk bekerja pada subset data input dengan menggunakan Input dan Output Processing.
Input/Output Mesin Status
Anda dapat memberikan data input awal Anda ke mesin AWS Step Functions negara dengan salah satu dari dua cara. Anda dapat meneruskan data ke StartExecution
tindakan ketika Anda memulai eksekusi. Anda juga dapat meneruskan data ke mesin status dari konsol Step FunctionsStartAt
mesin status. Jika input tidak tersedia, default-nya adalah obyek kosong ({}
).
Output dari eksekusi dikembalikan oleh status terakhir (terminal
). Output ini muncul sebagai JSON teks dalam hasil eksekusi.
Untuk Alur Kerja Standar, Anda dapat mengambil hasil eksekusi dari riwayat eksekusi menggunakan penelepon eksternal, seperti tindakan. DescribeExecution
Anda dapat melihat hasil eksekusi di konsol Step Functions
Untuk Alur Kerja Ekspres, jika Anda mengaktifkan logging, Anda dapat mengambil hasil dari CloudWatch Log, atau melihat dan men-debug eksekusi di konsol Step Functions. Untuk informasi selengkapnya, silakan lihat Menggunakan CloudWatch Log untuk mencatat riwayat eksekusi di Step Functions dan Melihat dan men-debug eksekusi di konsol Step Functions.
Anda juga harus mempertimbangkan kuota yang terkait dengan mesin status Anda. Untuk informasi selengkapnya, silakan lihat Kuota layanan Step Functions
Input/output status
Masukan setiap negara terdiri dari JSON teks dari status sebelumnya atau, untuk StartAt
status, input ke dalam eksekusi. Status kontrol aliran tertentu menggemakan input-nya ke output-nya.
Dalam contoh berikut, mesin status menambahkan dua angka bersama-sama.
-
Tentukan AWS Lambda fungsinya.
function Add(input) { var numbers = JSON.parse(input).numbers; var total = numbers.reduce( function(previousValue, currentValue, index, array) { return previousValue + currentValue; }); return JSON.stringify({ result: total }); }
-
Tentukan mesin status.
{ "Comment": "An example that adds two numbers together.", "StartAt": "Add", "Version": "1.0", "TimeoutSeconds": 10, "States": { "Add": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:Add", "End": true } } }
-
Mulai eksekusi dengan JSON teks berikut.
{ "numbers": [3, 4] }
Add
Negara menerima JSON teks dan meneruskannya ke fungsi Lambda.Fungsi Lambda mengembalikan hasil perhitungan ke status tersebut.
Status mengembalikan nilai berikut dalam output-nya.
{ "result": 7 }
Mengingat
Add
juga merupakan status akhir dalam mesin status, nilai ini dikembalikan sebagai output mesin status.Jika status akhir tidak mengembalikan output, mesin status mengembalikan sebuah objek kosong (
{}
).
Untuk informasi selengkapnya, lihat Memproses input dan output di Step Functions.
Memohon AWS Step Functions dari layanan lain
Anda dapat mengonfigurasi beberapa layanan lain untuk memanggil mesin status. Berdasarkan jenis alur kerja mesin status, Anda dapat memanggil mesin status secara asinkron atau sinkron. Untuk memanggil mesin status secara sinkron, gunakan StartSyncExecution
API panggilan atau integrasi Amazon API Gateway dengan Alur Kerja Ekspres. Dengan pemanggilan asinkron, Step Functions menjeda eksekusi alur kerja hingga token tugas dikembalikan. Namun, menunggu token tugas memang membuat alur kerja sinkron.
Layanan yang dapat Anda konfigurasikan untuk menjalankan Step Functions meliputi:
-
AWS Lambda, menggunakan panggilan
StartExecution
.
Pemanggilan Step Functions diatur oleh kuota StartExecution
. Untuk informasi selengkapnya, lihat:
Transisi dalam mesin negara
Ketika Anda memulai eksekusi baru dari mesin negara Anda, sistem dimulai dengan status yang direferensikan di bidang tingkat atasStartAt
. Bidang ini, diberikan sebagai string, harus sama persis, termasuk kasus, nama status dalam alur kerja.
Setelah status berjalan, AWS Step Functions gunakan nilai Next
bidang untuk menentukan status berikutnya untuk maju ke.
Next
bidang juga menentukan nama negara sebagai string. String ini peka huruf besar/kecil dan harus cocok dengan nama status yang ditentukan dalam deskripsi mesin negara dengan tepat
Misalnya, status berikut menyertakan transisi ke NextState
.
"SomeState" : {
...,
"Next" : "NextState"
}
Sebagian besar negara hanya mengizinkan satu aturan transisi dengan Next
bidang tersebut. Namun, status kontrol aliran tertentu, seperti Choice
status, memungkinkan Anda menentukan beberapa aturan transisi, masing-masing dengan bidangnya sendiriNext
. Bahasa Status Amazon menyediakan detail tentang masing-masing tipe status yang dapat Anda tentukan, termasuk informasi tentang cara menentukan transisi.
Status dapat memiliki beberapa transisi masuk dari status lain.
Proses berulang sampai mencapai status terminal (status dengan"Type":
Succeed
,, atau"End": true
)"Type": Fail
, atau kesalahan runtime terjadi.
Ketika Anda redriveeksekusi, itu dianggap sebagai transisi status. Selain itu, semua status yang dijalankan kembali dalam a juga redrive dianggap sebagai transisi status.
Aturan berikut berlaku untuk status dalam mesin status:
-
Negara dapat terjadi dalam urutan apa pun di dalam blok terlampir. Namun, urutan di mana mereka terdaftar tidak mempengaruhi urutan di mana mereka dijalankan. Perintah itu ditentukan oleh isi status.
-
Dalam mesin negara, hanya ada satu negara yang ditunjuk sebagai
start
negara.start
Status ditentukan oleh nilaiStartAt
bidang dalam struktur tingkat atas. -
Bergantung pada logika mesin status Anda — misalnya, jika mesin status Anda memiliki beberapa cabang logika — Anda mungkin memiliki lebih dari satu
end
status. -
Jika mesin negara Anda hanya terdiri dari satu status, itu bisa menjadi status awal dan akhir.
Transisi dalam status Peta Terdistribusi
Saat Anda menggunakan Map
status dalam mode Terdistribusi, Anda akan dikenakan biaya satu transisi status untuk setiap eksekusi alur kerja anak yang memulai status Peta Terdistribusi. Saat Anda menggunakan Map
status dalam mode Inline, Anda tidak dikenakan biaya transisi status untuk setiap iterasi status Peta Sebaris.
Anda dapat mengoptimalkan biaya dengan menggunakan Map
status dalam mode Terdistribusi dan menyertakan alur kerja bersarang dalam definisi Map
status. Status Peta Terdistribusi juga menambah nilai saat Anda memulai eksekusi alur kerja turunan dari tipe Express. Step Functions menyimpan respons dan status eksekusi alur kerja anak Express, yang mengurangi kebutuhan untuk menyimpan data eksekusi di CloudWatch Log. Anda juga bisa mendapatkan akses ke kontrol aliran yang tersedia dengan status Peta Terdistribusi, seperti menentukan ambang kesalahan atau mengelompokkan sekelompok item. Untuk informasi tentang harga Step Functions, lihat AWS Step Functions harga
Baca Konsistensi di Step Functions
Pembaruan mesin status pada AWS Step Functions akhirnya konsisten. Semua StartExecution
panggilan dalam beberapa detik akan menggunakan definisi yang diperbarui dan roleArn
(Nama Sumber Daya Amazon untuk IAM peran tersebut). Eksekusi yang dimulai segera setelah memanggil UpdateStateMachine
mungkin menggunakan ketentuan mesin status dan roleArn
sebelumnya.
Untuk informasi selengkapnya, lihat berikut ini:
-
UpdateStateMachine
dalam AWS Step Functions APIReferensi -
Perbarui alur kerja diPelajari cara memulai dengan Step Functions.