Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola alur kerja dan acara Lambda
Saat membuat aplikasi tanpa server dengan Lambda, Anda sering membutuhkan cara untuk mengatur eksekusi fungsi dan menangani peristiwa. AWS menyediakan beberapa pendekatan untuk mengoordinasikan fungsi Lambda:
-
Fungsi Lambda yang tahan lama untuk orkestrasi alur kerja kode pertama dalam Lambda
-
AWS Step Functions untuk orkestrasi alur kerja visual di beberapa layanan
-
Amazon EventBridge Scheduler dan Amazon EventBridge untuk arsitektur dan penjadwalan yang digerakkan oleh acara
Anda juga dapat mengintegrasikan pendekatan ini bersama-sama. Misalnya, Anda dapat menggunakan EventBridge Scheduler untuk memicu fungsi tahan lama atau alur kerja Step Functions saat peristiwa tertentu terjadi, atau mengonfigurasi alur kerja untuk mempublikasikan peristiwa ke EventBridge Scheduler pada titik eksekusi yang ditentukan. Topik berikut di bagian ini memberikan informasi lebih lanjut tentang bagaimana Anda dapat menggunakan opsi orkestrasi ini.
Orkestrasi kode pertama dengan fungsi tahan lama
Fungsi tahan lama Lambda menyediakan pendekatan kode-pertama untuk orkestrasi alur kerja, memungkinkan Anda untuk membangun alur kerja stateful dan berjalan lama secara langsung dalam fungsi Lambda Anda. Tidak seperti layanan orkestrasi eksternal, fungsi tahan lama menjaga logika alur kerja Anda dalam kode, membuatnya lebih mudah untuk versi, pengujian, dan pemeliharaan bersama logika bisnis Anda.
Fungsi tahan lama sangat ideal saat Anda membutuhkan:
-
Definisi alur kerja kode-pertama: Tentukan alur kerja menggunakan bahasa pemrograman yang sudah dikenal daripada JSON atau desainer visual
-
Proses yang berjalan lama: Jalankan alur kerja yang dapat berjalan hingga satu tahun, jauh melampaui batas 15 menit fungsi Lambda standar
-
Pengembangan yang disederhanakan: Simpan logika alur kerja dan logika bisnis dalam basis kode yang sama untuk pemeliharaan dan pengujian yang lebih mudah
-
Penantian hemat biaya: Jeda eksekusi selama status tunggu tanpa menghabiskan sumber daya komputasi
-
Manajemen status bawaan: Pos pemeriksaan otomatis dan persistensi status tanpa konfigurasi penyimpanan eksternal
Memilih antara fungsi tahan lama dan Step Functions
Fungsi tahan lama dan Step Functions menyediakan kemampuan orkestrasi alur kerja, tetapi mereka melayani kasus penggunaan yang berbeda:
| Pertimbangan | Fungsi Tahan Lama | Step Functions |
|---|---|---|
| Definisi alur kerja | Kode-pertama (, JavaScript Python, Java) | Bahasa Amazon States atau desainer visual yang berbasis di JSON |
| Pendekatan pengembangan | Basis kode tunggal dengan logika bisnis | Pisahkan definisi alur kerja dan kode fungsi |
| Integrasi layanan | Melalui kode fungsi Lambda dan AWS SDKs | Integrasi asli dengan banyak layanan AWS |
| Durasi eksekusi | Hingga 1 tahun | Hingga 1 tahun (Standar), 5 menit (Ekspres) |
| Pemrosesan paralel | Promise.all () dan pola berbasis kode | Status paralel dan Peta Terdistribusi |
| Penanganan kesalahan | Blok coba-tangkap dan logika coba ulang khusus | Status coba ulang dan catch bawaan |
| Pemantauan visual | CloudWatch log dan dasbor khusus | Grafik eksekusi visual dan riwayat terperinci |
| Terbaik untuk | Alur kerja yang berpusat pada pengembang, logika bisnis yang kompleks, pembuatan prototipe cepat | Orkestrasi multi-layanan, alur kerja visual, tata kelola perusahaan |
Gunakan fungsi yang tahan lama saat:
-
Tim Anda lebih memilih pendekatan pengembangan kode-pertama
-
Logika alur kerja digabungkan erat dengan logika bisnis
-
Anda membutuhkan pembuatan prototipe dan iterasi yang cepat
-
Alur kerja Anda terutama melibatkan fungsi Lambda dan panggilan layanan sederhana
Gunakan Step Functions saat:
-
Anda memerlukan desain dan pemantauan alur kerja visual
-
Alur kerja Anda mengatur beberapa layanan secara ekstensif AWS
-
Anda memerlukan fitur tata kelola perusahaan dan kepatuhan
-
Pemangku kepentingan non-teknis perlu memahami logika alur kerja
Untuk informasi selengkapnya tentang fungsi tahan lama, lihat Fungsi tahan lama untuk Lambda.
Mengatur alur kerja dengan Step Functions
AWS Step Functions adalah layanan orkestrasi alur kerja yang membantu Anda mengoordinasikan beberapa fungsi Lambda dan layanan lainnya ke dalam alur kerja terstruktur. AWS Alur kerja ini dapat mempertahankan status, menangani kesalahan dengan mekanisme coba ulang yang canggih, dan memproses data dalam skala besar.
Step Functions menawarkan dua jenis alur kerja untuk memenuhi kebutuhan orkestrasi yang berbeda:
- Alur kerja standar
-
Ideal untuk alur kerja yang berjalan lama dan dapat diaudit yang memerlukan semantik eksekusi tepat sekali. Alur kerja standar dapat berjalan hingga satu tahun, memberikan riwayat eksekusi terperinci, dan mendukung debugging visual. Mereka cocok untuk proses seperti pemenuhan pesanan, pipa pemrosesan data, atau pekerjaan analitik multi-langkah.
- Alur kerja ekspres
-
Dirancang untuk high-event-rate, beban kerja berdurasi pendek dengan semantik at-least-once eksekusi. Alur kerja ekspres dapat berjalan hingga lima menit dan ideal untuk pemrosesan peristiwa volume tinggi, transformasi data streaming, atau skenario konsumsi data IoT. Mereka menawarkan throughput yang lebih tinggi dan biaya yang berpotensi lebih rendah dibandingkan dengan alur kerja Standar.
catatan
Untuk informasi selengkapnya tentang jenis alur kerja Step Functions, lihat Memilih jenis alur kerja di Step Functions.
Dalam alur kerja ini, Step Functions menyediakan dua jenis status Peta untuk pemrosesan paralel:
- Peta Inline
-
Memproses item dari array JSON dalam riwayat eksekusi alur kerja induk. Peta Inline mendukung hingga 40 iterasi bersamaan dan cocok untuk kumpulan data yang lebih kecil atau ketika Anda perlu menyimpan semua pemrosesan dalam satu eksekusi. Untuk informasi selengkapnya, lihat Menggunakan status Peta dalam mode Inline.
- Peta Terdistribusi
-
Memungkinkan pemrosesan beban kerja paralel skala besar dengan mengulangi kumpulan data yang melebihi 256 KiB atau memerlukan lebih dari 40 iterasi bersamaan. Dengan dukungan hingga 10.000 eksekusi alur kerja anak paralel, Peta Terdistribusi unggul dalam memproses data semi-terstruktur yang disimpan di Amazon S3, seperti file JSON atau CSV, sehingga ideal untuk pemrosesan batch dan operasi ETL. Untuk informasi selengkapnya, lihat Menggunakan status Peta dalam mode Terdistribusi.
Dengan menggabungkan jenis alur kerja dan status Peta ini, Step Functions menyediakan perangkat yang fleksibel dan kuat untuk mengatur aplikasi tanpa server yang kompleks, mulai dari operasi skala kecil hingga jaringan pemrosesan data skala besar.
Untuk memulai menggunakan Lambda dengan Step Functions, lihat Mengatur fungsi Lambda dengan Step Functions.
Mengelola acara dengan EventBridge dan EventBridge Scheduler
Amazon EventBridge adalah layanan bus acara yang membantu Anda membangun arsitektur berbasis acara. Ini merutekan peristiwa antara AWS layanan, aplikasi terintegrasi, dan aplikasi perangkat lunak sebagai layanan (SaaS). EventBridge Scheduler adalah penjadwal tanpa server yang memungkinkan Anda membuat, menjalankan, dan mengelola tugas dari satu layanan pusat, memungkinkan Anda untuk memanggil fungsi Lambda pada jadwal menggunakan ekspresi cron dan rate, atau mengonfigurasi pemanggilan satu kali.
Amazon EventBridge dan EventBridge Scheduler membantu Anda membangun arsitektur berbasis peristiwa dengan Lambda. EventBridge merutekan peristiwa antara AWS layanan, aplikasi terintegrasi, dan aplikasi SaaS, sementara EventBridge Scheduler menyediakan kemampuan penjadwalan khusus untuk menjalankan fungsi Lambda secara berulang atau satu kali.
Layanan ini menyediakan beberapa kemampuan utama untuk bekerja dengan fungsi Lambda:
-
Buat aturan yang cocok dan rute acara ke fungsi Lambda menggunakan EventBridge
-
Siapkan pemanggilan fungsi berulang menggunakan ekspresi cron dan rate dengan Scheduler EventBridge
-
Konfigurasikan pemanggilan fungsi satu kali pada tanggal dan waktu tertentu
-
Tentukan jendela waktu yang fleksibel dan coba lagi kebijakan untuk pemanggilan terjadwal
Lihat informasi yang lebih lengkap di Memanggil fungsi Lambda sesuai jadwal.