Apa itu AWS 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 AWS Step Functions?

AWS Step Functions adalah layanan alur kerja visual yang membantu Anda membangun aplikasi terdistribusi, mengotomatiskan proses, mengatur layanan mikro, dan membuat jaringan pipa data dan pembelajaran mesin (ML).

Di konsol grafis Step Functions, Anda dapat melihat alur kerja aplikasi Anda sebagai serangkaian langkah yang digerakkan oleh peristiwa.

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 Layanan AWS atau API.

Dengan kontrol bawaan Step Functions, 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 membuat alur kerja yang memproses dan memublikasikan model machine learning. Anda dapat memiliki AWS layanan kontrol Step Functions, seperti AWS Glue, untuk membuat alur kerja ekstrak, transformasi, dan beban (ETL). Anda juga dapat membuat alur kerja otomatis yang berjalan lama untuk aplikasi yang memerlukan interaksi manusia.

Tip

Untuk mempelajari cara menggunakan Step Functions, ikuti modul interaktif di AWS Step Functions Workshop, atau baca bagian Memulai dalam panduan ini untuk membuat alur kerja aplikasi kartu kredit.

AWS SDK dan Integrasi yang Dioptimalkan

Untuk memanggil AWS layanan lain, Anda dapat menggunakan integrasi AWS SDK Fungsi Langkah, atau Anda dapat menggunakan salah satu integrasi yang Dioptimalkan oleh Fungsi Langkah.

Alur kerja Standar dan Ekspres

Step Functions memiliki dua tipe alur kerja. Alur kerja standar memiliki eksekusi alur kerja tepat satu kali dan dapat berjalan hingga satu tahun. Ini berarti bahwa setiap langkah dalam alur kerja Standar akan dijalankan tepat sekali. Alur kerja ekspres, bagaimanapun, memiliki eksekusi at-least-once alur 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.

Eksekusi adalah instans tempat Anda menjalankan alur kerja untuk melakukan tugas. Alur kerja standar adalah ideal untuk alur kerja yang berjalan lama dan dapat diaudit, karena menunjukkan riwayat eksekusi dan debugging visual. Alur kerja ekspres ideal untuk high-event-rate beban kerja, seperti pemrosesan data streaming dan konsumsi data IoT.

Spesifikasi alur kerja standar

  • Tingkat eksekusi 2.000 per detik

  • Tingkat transisi status 4,000 per detik

  • Harga berdasarkan transisi negara

  • Tampilkan riwayat eksekusi dan debugging visual

  • Mendukung semua integrasi dan pola layanan

Spesifikasi alur kerja ekspres

  • Tingkat eksekusi 100.000 per detik

  • Tingkat transisi status yang hampir tidak terbatas

  • Harga berdasarkan jumlah dan durasi eksekusi

  • Kirim riwayat eksekusi ke Amazon CloudWatch

  • Tampilkan riwayat eksekusi dan debugging visual berdasarkan level Log yang diaktifkan

  • Mendukung semua integrasi layanan dan sebagian besar pola

Untuk informasi selengkapnya tentang alur kerja Standar dan Ekspres, termasuk harga Step Functions, lihat berikut ini:

Kasus penggunaan

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. Bagian ini menjelaskan kasus penggunaan umum untuk bekerja dengan Step Functions.

Kasus penggunaan #1: Orkestrasi fungsi

Mengikat

Anda membuat alur kerja yang menjalankan sekelompok fungsi Lambda (langkah-langkah) dalam urutan tertentu. Satu output fungsi Lambda diteruskan ke input fungsi Lambda berikutnya. Langkah terakhir dalam alur kerja Anda memberikan hasil. Dengan Step Functions, Anda dapat melihat setiap langkah dalam alur kerja Anda berinteraksi satu sama lain, sehingga Anda dapat memastikan bahwa setiap langkah tersebut menjalankan fungsi yang diinginkan.

Untuk tutorial yang menunjukkan cara membuat mesin status dengan sekelompok fungsi, lihat berikut ini:

Kasus penggunaan #2: Percabangan

Percabangan

Pelanggan meminta peningkatan batas kredit. Dengan menggunakan status Choice, Anda dapat meminta Step Functions membuat keputusan berdasarkan input status Choice. 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.

Kasus penggunaan #3: Penanganan kesalahan

Coba ulang/Tangkap

Retry

Dalam kasus penggunaan ini, pelanggan meminta nama pengguna. Pertama kali, permintaan pelanggan Anda tidak berhasil. Dengan menggunakan pernyataan Retry, Anda dapat meminta Step Functions untuk mencoba permintaan pelanggan Anda kembali. Kedua kalinya, permintaan pelanggan Anda berhasil.

Catch

Dalam kasus penggunaan yang sama, pelanggan meminta nama pengguna yang tidak tersedia. Dengan menggunakan pernyataan Catch, Anda meminta Step Functions menyarankan nama pengguna yang tersedia. Jika pelanggan Anda mengambil nama pengguna yang tersedia, Anda dapat meminta Step Functions untuk menuju ke langkah berikutnya dalam alur kerja Anda, yaitu mengirim email konfirmasi. Jika pelanggan Anda tidak mengambil nama pengguna yang tersedia, Anda meminta Step Functions menuju ke langkah yang berbeda dalam alur kerja Anda, yaitu memulai proses pendaftaran dari awal.

Untuk contoh pernyataan Retry dan Catch yang lebih mendetail, lihat berikut ini:

Kasus penggunaan #4: Manusia dalam lingkaran

Mengikat

Dengan menggunakan aplikasi perbankan, salah satu pelanggan Anda mengirim uang ke seorang teman. Pelanggan Anda menunggu email konfirmasi. Dengan panggilan balik dan token tugas, Anda meminta Step Functions memberi tahu Lambda untuk mengirim uang pelanggan Anda dan melaporkan kembali saat teman pelanggan Anda menerimanya. Setelah Lambda melaporkan kembali bahwa teman pelanggan Anda menerima uang, Anda dapat meminta Step Functions menuju ke langkah berikutnya dalam alur kerja Anda, yaitu mengirim email konfirmasi kepada pelanggan Anda.

Untuk melihat contoh proyek yang memperlihatkan panggilan balik dengan token tugas, lihat hal berikut:

Kasus penggunaan #5: Pemrosesan paralel

Paralelisme

Pelanggan mengonversi file video menjadi lima resolusi tampilan yang berbeda, sehingga pemirsa dapat menonton video di beberapa perangkat. Dengan menggunakan status Parallel, Step Functions memasukkan file video, sehingga Lambda dapat memprosesnya menjadi lima resolusi tampilan secara bersamaan.

Kasus penggunaan #6: Paralelisme dinamis

Mengikat

Seorang pelanggan memesan tiga item, dan Anda perlu menyiapkan setiap item untuk pengiriman. Anda memeriksa ketersediaan setiap item, mengumpulkan setiap item, lalu mengemas setiap item untuk pengiriman. Dengan menggunakan status Map, Step Functions membuat Lambda memproses setiap item pelanggan Anda secara paralel. Setelah semua item pelanggan Anda dikemas untuk pengiriman, Step Functions melanjutkan ke langkah berikutnya dalam alur kerja Anda, yaitu mengirimkan email konfirmasi kepada pelanggan Anda dengan informasi pelacakan.

Untuk melihat contoh proyek yang menunjukkan paralelisme dinamis menggunakan status Map, lihat hal berikut:

Integrasi layanan

Step Functions terintegrasi dengan beberapa AWS layanan. Untuk menggabungkan Step Functions dengan layanan ini, gunakan pola integrasi layanan berikut:

Minta tanggapan (default)
  • Panggil layanan, dan biarkan Step Functions berprogres ke status berikutnya setelah mendapat respons HTTP.

Jalankan pekerjaan (.sync)
  • 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.

Tabel di bawah ini menunjukkan integrasi layanan dan pola integrasi layanan yang tersedia untuk Step Functions.

Alur Kerja Standar dan Alur Kerja Ekspres mendukung integrasi yang sama tetapi bukan pola integrasi yang sama.

  • Dukungan pola integrasi yang dioptimalkan berbeda untuk setiap integrasi.

  • Alur Kerja Ekspres tidak mendukung Run a Job (.sync) atau Wait for Callback (. waitForTaskToken).

  • Untuk informasi selengkapnya, lihat Alur Kerja Standar vs Ekspres.

Standard Workflows
Integrasi layanan yang didukung
Layanan Permintaan Respon Jalankan Job (.sync) Tunggu Callback () .waitForTaskToken
Integrasi yang dioptimalkan Amazon API Gateway
Amazon Athena
AWS Batch
Amazon Bedrock
AWS CodeBuild
Amazon DynamoDB
Amazon ECS/Fargate
Amazon EKS
Amazon EMR
Amazon EMR on EKS
Amazon EMR Serverless
Amazon EventBridge
AWS Glue
AWS Glue DataBrew
AWS Lambda
AWS Elemental MediaConvert
Amazon SageMaker
Amazon SNS
Amazon SQS
AWS Step Functions
AWS Integrasi SDK Lebih dari dua ratus
Express Workflows

Wilayah yang didukung

Sebagian besar AWS wilayah mendukung Step Functions. Untuk daftar lengkap AWS wilayah tempat Step Functions tersedia, lihat Tabel AWS Wilayah.

Apakah ini pertama kalinya Anda menggunakan Step Functions?

Jika ini adalah pertama kalinya Anda menggunakan Step Functions, topik berikut membantu Anda memahami berbagai bagian kerja dengan Step Functions, termasuk bagaimana Step Functions digabungkan dengan AWS layanan lain: