Apa itu Step Functions? - AWS Step Functions

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.

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, atau lihat bagian Memulai di panduan ini.

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:

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

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.