Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Apa itu Step Functions?
Dengan AWS Step Functions, Anda dapat membuat alur kerja, juga disebut mesin status, untuk membangun aplikasi terdistribusi, mengotomatiskan proses, mengatur layanan mikro, dan membuat pipa data dan pembelajaran mesin.
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 dari diagram alur kerja Step Functions.](images/step-functions-example.png)
Di konsol Step Functions, Anda dapat memvisualisasikan, mengedit, dan men-debug alur kerja aplikasi Anda. Anda dapat memeriksa status setiap langkah dalam alur kerja Anda untuk memastikan bahwa aplikasi Anda berjalan secara berurutan dan seperti yang diharapkan.
Bergantung pada kasus penggunaan Anda, Anda dapat memiliki AWS layanan panggilan Step Functions, seperti Lambda, untuk melakukan tugas. Anda dapat memiliki AWS layanan kontrol Step Functions, seperti AWS Glue, untuk membuat ekstrak, mengubah, dan memuat alur kerja. Anda juga dapat membuat alur kerja otomatis yang berjalan lama untuk aplikasi yang memerlukan interaksi manusia.
Untuk daftar lengkap AWS wilayah tempat Step Functions tersedia, lihat Tabel AWS
Wilayah
Pelajari cara menggunakan Step Functions
Untuk mempelajari cara menggunakan Step Functions, ikuti modul interaktif di AWS Step Functions Workshop
Jenis alur kerja standar dan Express
Step Functions memiliki dua jenis alur kerja:
-
Alur kerja standar ideal untuk alur kerja yang berjalan lama dan dapat diaudit, karena menunjukkan riwayat eksekusi dan debugging visual.
Alur kerja standar memiliki eksekusi alur kerja yang tepat sekali dan dapat berjalan hingga satu tahun. Ini berarti bahwa setiap langkah dalam alur kerja Standar akan dijalankan tepat sekali.
-
Alur kerja ekspres ideal untuk high-event-rate beban kerja, seperti pemrosesan data streaming dan konsumsi data IoT.
Alur kerja ekspres memiliki eksekusi at-least-oncealur kerja dan dapat berjalan hingga lima menit. Ini berarti bahwa satu atau beberapa langkah dalam Alur Kerja Ekspres berpotensi berjalan lebih dari satu kali, sementara setiap langkah dalam alur kerja dijalankan setidaknya sekali.
Alur kerja standar | Alur kerja ekspres |
---|---|
Tingkat eksekusi 2.000 per detik | Tingkat eksekusi 100.000 per detik |
Tingkat transisi status 4,000 per detik | Tingkat transisi status yang hampir tidak terbatas |
Harga berdasarkan transisi negara | Harga berdasarkan jumlah dan durasi eksekusi |
Tampilkan riwayat eksekusi dan debugging visual | Tampilkan riwayat eksekusi dan debugging visual berdasarkan level log |
Lihat riwayat eksekusi di Step Functions |
Kirim riwayat eksekusi ke CloudWatch |
Support Integrasi dengan Semua Layanan Support integrasi yang dioptimalkan dengan beberapa layanan. |
Support Integrasi dengan Semua Layanan |
Pola Respon Permintaan Dukungan untuk semua layanan Support Jalankan Job dan/atau Tunggu pola Callback di layanan tertentu (lihat bagian berikut untuk detailnya) |
Pola Respon Permintaan Dukungan untuk semua layanan |
Untuk informasi selengkapnya tentang harga Step Functions dan memilih jenis alur kerja, lihat berikut ini:
Mengintegrasikan dengan layanan lainnya
Step Functions terintegrasi dengan beberapa AWS layanan. Untuk memanggil AWS layanan lain, Anda dapat menggunakan dua jenis integrasi:
-
AWS SDKintegrasi menyediakan cara untuk memanggil AWS layanan apa pun langsung dari mesin negara Anda, memberi Anda akses ke ribuan API tindakan.
-
Integrasi yang dioptimalkan menyediakan opsi khusus untuk menggunakan layanan tersebut di mesin negara Anda.
Untuk menggabungkan Step Functions dengan layanan lain, ada tiga pola integrasi layanan:
-
Panggil layanan, dan biarkan Step Functions maju ke status berikutnya setelah mendapat HTTP respons.
-
Panggil layanan, dan minta Step Functions menunggu tugas untuk diselesaikan.
-
Tunggu panggilan balik dengan token tugas (. waitForTaskToken)
Panggil layanan dengan token tugas, dan minta Step Functions menunggu hingga token tugas kembali dengan panggilan balik.
Alur Kerja Standar dan Alur Kerja Ekspres mendukung integrasi yang sama tetapi bukan pola integrasi yang sama.
Alur Kerja Ekspres mendukung Respons Permintaan, tetapi tidak mendukung Run a Job (.sync) atau Wait for Callback (. waitForTaskToken).
Untuk informasi selengkapnya, lihat Memilih jenis alur kerja di Step Functions.
AWS SDKIntegrasi yang didukung dalam Step Functions
Layanan | Permintaan Respon | Jalankan Job (.sync) | Tunggu Callback () .waitForTaskToken |
---|---|---|---|
Lebih dari dua ratus layanan | Standar & Ekspres | Tidak didukung | Standar |
Integrasi Dioptimalkan yang Didukung di Step Functions
Layanan | Permintaan Respon | Jalankan Job (.sync) | Tunggu Callback () .waitForTaskToken |
---|---|---|---|
Amazon API Gateway | Standar & Ekspres | Tidak didukung | Standar |
Amazon Athena | Standar & Ekspres | Standar | Tidak didukung |
AWS Batch | Standar & Ekspres | Standar | Tidak didukung |
Amazon Bedrock | Standar & Ekspres | Standar | Standar |
AWS CodeBuild | Standar & Ekspres | Standar | Tidak didukung |
Amazon DynamoDB | Standar & Ekspres | Tidak didukung | Tidak didukung |
Amazon ECS/Fargate | Standar & Ekspres | Standar | Standar |
Amazon EKS | Standar & Ekspres | Standar | Standar |
Amazon EMR | Standar & Ekspres | Standar | Tidak didukung |
Amazon EMR on EKS | Standar & Ekspres | Standar | Tidak didukung |
Amazon EMR Serverless | Standar & Ekspres | Standar | Tidak didukung |
Amazon EventBridge | Standar & Ekspres | Tidak didukung | Standar |
AWS Glue | Standar & Ekspres | Standar | Tidak didukung |
AWS Glue DataBrew | Standar & Ekspres | Standar | Tidak didukung |
AWS Lambda | Standar & Ekspres | Tidak didukung | Standar |
AWS Elemental MediaConvert | Standar & Ekspres | Standar | Tidak didukung |
Amazon SageMaker | Standar & Ekspres | Standar | Tidak didukung |
Amazon SNS | Standar & Ekspres | Tidak didukung | Standar |
Amazon SQS | Standar & Ekspres | Tidak didukung | Standar |
AWS Step Functions | Standar & Ekspres | Standar | Standar |
Contoh kasus penggunaan untuk alur kerja
Step Functions mengelola komponen dan logika aplikasi Anda, sehingga Anda dapat menulis lebih sedikit kode dan fokus untuk membangun dan memperbarui aplikasi Anda dengan cepat. Gambar berikut menunjukkan enam kasus penggunaan untuk alur kerja Step Functions.
![Contoh visual dari enam kasus penggunaan alur kerja umum, dijelaskan dalam teks berikut.](images/use-case-examples.png)
-
Mengatur tugas — Anda dapat membuat alur kerja yang mengatur serangkaian tugas, atau langkah, dalam urutan tertentu. Misalnya, Tugas A mungkin merupakan fungsi Lambda yang menyediakan input untuk fungsi Lambda lain di Tugas B. Langkah terakhir dalam alur kerja Anda memberikan hasil akhir.
-
Pilih tugas berdasarkan data — Menggunakan
Choice
status, Anda dapat meminta Step Functions membuat keputusan berdasarkan masukan status. Misalnya, bayangkan bahwa pelanggan meminta kenaikan batas kredit. Jika permintaan lebih dari batas kredit pelanggan Anda yang telah disetujui sebelumnya, Anda dapat meminta Step Functions mengirimkan permintaan pelanggan Anda ke pengelola untuk sign-off. Jika permintaan kurang dari batas kredit pelanggan Anda yang telah disetujui sebelumnya, Anda dapat meminta Step Functions untuk menyetujui permintaan tersebut secara otomatis. -
Penanganan kesalahan (
Retry
/Catch
) - Anda dapat mencoba kembali tugas yang gagal, atau menangkap tugas yang gagal dan secara otomatis menjalankan langkah-langkah alternatif.Misalnya, setelah pelanggan meminta nama pengguna, mungkin panggilan pertama ke layanan validasi Anda gagal, sehingga alur kerja Anda dapat mencoba kembali permintaan tersebut. Ketika permintaan kedua berhasil, alur kerja dapat dilanjutkan.
Atau, mungkin pelanggan meminta nama pengguna yang tidak valid atau tidak tersedia, sebuah
Catch
pernyataan dapat mengarah ke langkah alur kerja Step Functions yang menyarankan nama pengguna alternatif.Untuk contoh
Retry
danCatch
, lihatMenangani kesalahan status dalam alur kerja Step Functions. -
Human in the loop - Step Functions dapat menyertakan langkah-langkah persetujuan manusia dalam alur kerja. Misalnya, bayangkan seorang pelanggan perbankan mencoba mengirim dana ke teman. Dengan callback dan token tugas, Anda dapat meminta Step Functions menunggu hingga teman pelanggan mengonfirmasi transfer, dan kemudian Step Functions akan melanjutkan alur kerja untuk memberi tahu nasabah perbankan bahwa transfer telah selesai.
Sebagai contoh, lihat Buat contoh pola panggilan balik dengan AmazonSQS, AmazonSNS, dan Lambda.
-
Pemrosesan paralel — Menggunakan
Parallel
status, Step Functions dapat memproses input secara paralel. Misalnya, pelanggan mungkin perlu mengonversi file video menjadi beberapa resolusi tampilan, sehingga pemirsa dapat menonton video di beberapa perangkat. Alur kerja Anda dapat mengirim file video asli ke beberapa fungsi Lambda atau menggunakan integrasi yang AWS Elemental MediaConvert dioptimalkan untuk memproses video menjadi beberapa resolusi tampilan secara bersamaan. -
Paralelisme dinamis — Menggunakan
Map
status, Step Functions dapat menjalankan serangkaian langkah alur kerja pada setiap item dalam kumpulan data. Iterasi berjalan secara paralel, yang memungkinkan untuk memproses dataset dengan cepat. Misalnya, ketika pelanggan Anda memesan tiga puluh item, sistem Anda perlu menerapkan alur kerja yang sama untuk mempersiapkan setiap item untuk pengiriman. Setelah semua barang dikumpulkan dan dikemas untuk pengiriman, langkah selanjutnya mungkin dengan cepat mengirim email konfirmasi kepada pelanggan Anda dengan informasi pelacakan.Untuk contoh template pemula, lihatMemproses data secara dinamis dengan Peta.