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 disebutMesin negara, untuk membangun aplikasi terdistribusi, mengotomatiskan proses, mengatur layanan mikro, dan membuat jalur 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 lain AWS melakukan layanan, seperti memanggil yang lain Layanan AWS atauAPI. Contoh menjalankan alur kerja yang melakukan tugas disebut eksekusi di Step Functions.
Pekerjaan dalam tugas mesin negara Anda juga dapat dilakukan dengan menggunakan pekerja Aktivitas yang ada di luar Step Functions.
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.
Tergantung pada kasus penggunaan Anda, Anda dapat memiliki panggilan Step Functions AWS layanan, seperti Lambda, untuk melakukan tugas. Anda dapat memiliki kontrol Step Functions AWS layanan, 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 di mana Step Functions tersedia, lihat AWS
Tabel Wilayah
Pelajari cara menggunakan Step Functions
Untuk mempelajari cara menggunakan Step Functions, ikuti modul interaktif di The 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 menelepon yang lain AWS layanan, Anda dapat menggunakan dua jenis integrasi:
-
AWS SDKintegrasi menyediakan cara untuk memanggil AWS layanan 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 Standar mendukung integrasi Respons Permintaan. Layanan tertentu mendukung Run a Job (.sync), atau Wait for Callback (. waitForTaskToken), dan keduanya dalam beberapa kasus. Lihat tabel integrasi yang dioptimalkan berikut untuk detailnya.
-
Alur Kerja Ekspres hanya mendukung integrasi Respons Permintaan.
Untuk membantu memutuskan di antara kedua jenis, lihatMemilih jenis alur kerja di Step Functions.
AWS SDKIntegrasi dalam Step Functions
Layanan terintegrasi | Minta Respons | Jalankan Job - .sync | Tunggu Callback -. waitForTaskToken |
---|---|---|---|
Lebih dari dua ratus layanan | Standar & Ekspres | Tidak didukung | Standar |
Integrasi yang dioptimalkan dalam Step Functions
Layanan terintegrasi | Minta Respons | 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.
-
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 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.
-
Memproses data secara paralel — Menggunakan
Parallel
status, Step Functions dapat memproses data 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 yang dioptimalkan AWS Elemental MediaConvert integrasi untuk memproses video menjadi beberapa resolusi tampilan pada saat yang bersamaan. -
Memproses elemen data secara 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 dengan Peta.