View a markdown version of this page

Mengatur fungsi Lambda dengan Fungsi Langkah - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatur fungsi Lambda dengan Fungsi Langkah

AWS Step Functions menyediakan orkestrasi alur kerja visual untuk mengoordinasikan fungsi Lambda dengan layanan lain AWS . Dengan integrasi asli ke 220+ AWS layanan dan infrastruktur tanpa pemeliharaan yang dikelola sepenuhnya, Step Functions sangat ideal ketika Anda membutuhkan desain alur kerja visual dan integrasi layanan yang dikelola sepenuhnya.

Untuk orkestrasi menggunakan bahasa pemrograman standar dalam Lambda di mana logika alur kerja hidup bersama logika bisnis, pertimbangkan fungsi tahan lama Lambda. Untuk bantuan memilih di antara opsi ini, lihat Fungsi tahan lama atau Fungsi Langkah.

Misalnya, memproses pesanan mungkin memerlukan validasi detail pesanan, memeriksa tingkat inventaris, memproses pembayaran, dan membuat faktur. Tulis fungsi Lambda terpisah untuk setiap tugas dan gunakan Fungsi Langkah untuk mengelola alur kerja. Step Functions mengkoordinasikan aliran data antara fungsi Anda dan menangani kesalahan pada setiap langkah. Pemisahan ini membuat alur kerja Anda lebih mudah untuk divisualisasikan, dimodifikasi, dan dipelihara karena semakin kompleks.

Kapan menggunakan Fungsi Langkah dengan Lambda

Skenario berikut adalah contoh yang baik ketika Fungsi Langkah sangat cocok untuk mengatur Lambda-based aplikasi.

Pemrosesan berurutan

Pemrosesan berurutan adalah ketika satu tugas harus diselesaikan sebelum tugas berikutnya dapat dimulai. Misalnya, dalam sistem pemrosesan pesanan, pemrosesan pembayaran tidak dapat dimulai sampai validasi pesanan selesai, dan pembuatan faktur harus menunggu konfirmasi pembayaran. Tulis fungsi Lambda terpisah untuk setiap tugas dan gunakan Fungsi Langkah untuk mengelola urutan dan menangani aliran data antar fungsi.

Fungsi Lambda tunggal mengelola seluruh alur kerja pemrosesan pesanan dengan:

  • Memanggil fungsi Lambda lainnya secara berurutan

  • Mengurai dan memvalidasi respons dari setiap fungsi

  • Menerapkan penanganan kesalahan dan logika pemulihan

  • Mengelola aliran data antar fungsi

Gunakan dua fungsi Lambda: satu untuk memvalidasi pesanan dan satu untuk memproses pembayaran. Fungsi Langkah mengkoordinasikan fungsi-fungsi ini dengan:

  • Menjalankan tugas dalam urutan yang benar

  • Meneruskan data antar fungsi

  • Menerapkan penanganan kesalahan pada setiap langkah

  • Menggunakan status Pilihan untuk memastikan hanya pesanan yang valid yang dilanjutkan ke pembayaran

contoh grafik alur kerja
Grafik alur kerja Fungsi Langkah menunjukkan validasi pesanan, status pilihan, dan pemrosesan pembayaran dengan jalur keberhasilan dan kegagalan.
catatan

Code-first alternatif: Untuk pemrosesan berurutan dengan checkpointing berbasis kode dan coba lagi, lihat langkah-langkah fungsi tahan lama Lambda.

Penanganan kesalahan yang kompleks

Sementara Lambda menyediakan kemampuan coba ulang untuk pemanggilan asinkron dan pemetaan sumber peristiwa, Step Functions menawarkan penanganan kesalahan yang lebih canggih untuk alur kerja yang kompleks. Anda dapat mengonfigurasi percobaan ulang otomatis dengan backkoff eksponensial dan menetapkan kebijakan coba ulang yang berbeda untuk berbagai jenis kesalahan. Saat percobaan ulang habis, gunakan Catch untuk merutekan kesalahan ke status fallback. Ini sangat berguna ketika Anda memerlukan penanganan kesalahan tingkat alur kerja yang mengoordinasikan beberapa fungsi dan layanan.

Untuk mempelajari selengkapnya tentang penanganan kesalahan fungsi Lambda di mesin status, lihat Men angani kesalahan di The AWS Step Functions Workshop.

Fungsi Lambda tunggal menangani semua hal berikut:

  • Upaya untuk memanggil layanan pemrosesan pembayaran

  • Jika layanan pembayaran tidak tersedia, fungsi menunggu dan mencoba lagi nanti.

  • Menerapkan backoff eksponensial khusus untuk waktu tunggu

  • Setelah semua upaya gagal, tangkap kesalahan dan pilih alur lain

Gunakan fungsi Lambda tunggal yang berfokus hanya pada pemrosesan pembayaran. Fungsi Langkah mengelola penanganan kesalahan dengan:

contoh grafik alur kerja
Langkah Fungsi grafik alur kerja untuk pemrosesan pembayaran dengan tiga hasil: pembayaran berhasil, pembayaran tidak valid, dan pembayaran gagal.
catatan

Code-first alternatif: Fungsi tahan lama menyediakan penanganan kesalahan try-catch dengan strategi coba ulang yang dapat dikonfigurasi. Lihat Pen anganan kesalahan dalam fungsi tahan lama.

Alur kerja bersyarat dan persetujuan manusia

Gunakan status Pilihan Fungsi Langkah untuk merutekan alur kerja berdasarkan output fungsi dan akhiran tunggu untuk menjeda ForTaskToken al ur kerja untuk keputusan manusia. Misalnya, untuk memproses permintaan kenaikan batas kredit, gunakan fungsi Lambda untuk mengevaluasi faktor risiko. Kemudian, gunakan Fungsi Langkah untuk merutekan permintaan berisiko tinggi ke persetujuan manual dan permintaan berisiko rendah ke persetujuan otomatis.

Untuk menerapkan contoh alur kerja yang menggunakan pola integrasi token tugas panggilan balik, lihat Pang gilan Balik dengan Token Tugas di The AWS Step Functions Workshop.

Fungsi Lambda tunggal mengelola alur kerja persetujuan yang kompleks dengan:

  • Menerapkan logika kondisional bersarang untuk mengevaluasi permintaan kredit

  • Memanggil fungsi persetujuan yang berbeda berdasarkan jumlah permintaan

  • Mengelola beberapa jalur persetujuan dan poin keputusan

  • Melacak keadaan persetujuan yang tertunda

  • Menerapkan batas waktu dan logika notifikasi untuk persetujuan

Gunakan tiga fungsi Lambda: satu untuk mengevaluasi risiko setiap permintaan, satu untuk menyetujui permintaan berisiko rendah, dan satu untuk mengarahkan permintaan berisiko tinggi ke manajer untuk ditinjau. Step Functions mengelola alur kerja dengan:

  • Menggunakan status Pilihan untuk merutekan permintaan berdasarkan jumlah dan tingkat risiko

  • Menjeda eksekusi sambil menunggu persetujuan manusia

  • Mengelola batas waktu untuk persetujuan yang tertunda

  • Memberikan visibilitas ke status saat ini dari setiap permintaan

contoh grafik alur kerja
Grafik alur kerja Fungsi Langkah menunjukkan percabangan evaluasi permintaan kredit ke persetujuan otomatis atau manajer berdasarkan risiko.
catatan

Code-first alternatif: Fungsi tahan lama mendukung panggilan balik untuk alur kerja manusia-in-the-loop. Lihat Pang gilan Balik dalam fungsi tahan lama.

Pemrosesan paralel

Fungsi Langkah menyediakan tiga cara untuk menangani pemrosesan paralel:

  • Status Paralel mengeksekusi beberapa cabang alur kerja Anda secara bersamaan. Gunakan ini ketika Anda perlu menjalankan fungsi yang berbeda secara paralel, seperti menghasilkan thumbnail saat mengekstrak metadata gambar.

  • Status Peta Inline memproses array data dengan hingga 40 iterasi bersamaan. Gunakan ini untuk kumpulan data kecil hingga menengah di mana Anda perlu melakukan operasi yang sama pada setiap item.

  • Status Peta Terdistribusi menangani pemrosesan paralel skala besar dengan hingga 10.000 eksekusi bersamaan, mendukung array JSON dan sumber data Amazon Simple Storage Service (Amazon S3). Gunakan ini saat memproses kumpulan data besar atau ketika Anda membutuhkan konkurensi yang lebih tinggi.

Fungsi Lambda tunggal mencoba mengelola pemrosesan paralel dengan:

  • Secara bersamaan memanggil beberapa fungsi pemrosesan gambar

  • Menerapkan logika eksekusi paralel khusus

  • Mengelola batas waktu dan penanganan kesalahan untuk setiap tugas paralel

  • Mengumpulkan dan menggabungkan hasil dari semua fungsi

Gunakan tiga fungsi Lambda: satu untuk membuat gambar thumbnail, satu untuk menambahkan tanda air, dan satu untuk mengekstrak metadata. Step Functions mengelola fungsi-fungsi ini dengan:

  • Menjalankan semua fungsi secara bersamaan menggunakan status Paralel

  • Mengumpulkan hasil dari setiap fungsi ke dalam array yang diurutkan

  • Mengelola batas waktu dan penanganan kesalahan di semua eksekusi paralel

  • Melanjutkan hanya ketika semua cabang paralel selesai

contoh grafik alur kerja
Langkah Fungsi grafik alur kerja dengan tiga fungsi Lambda paralel: buat thumbnail, tambahkan tanda air, dan ekstrak metadata.
catatan

Code-first alternatif: Fungsi tahan lama menyediakan parallel() dan map() operasi. Lihat Eksekusi Paralel.

Kapan tidak menggunakan Fungsi Langkah dengan Lambda

Tidak semua Lambda-based aplikasi mendapat manfaat dari menggunakan Fungsi Langkah. Pertimbangkan skenario ini saat memilih arsitektur aplikasi Anda.

Aplikasi sederhana

catatan

Untuk alur kerja yang tidak memerlukan desain visual atau integrasi layanan ekstensif, fungsi tahan lama Lambda mungkin merupakan alternatif yang lebih sederhana yang menjaga logika alur kerja dalam kode di dalam Lambda.

Untuk aplikasi yang tidak memerlukan orkestrasi kompleks, menggunakan Step Functions dapat menambah kerumitan yang tidak perlu. Misalnya, jika Anda hanya memproses pesan dari antrian Amazon SQS atau menanggapi EventBridge peristiwa Amazon, Anda dapat mengonfigurasi layanan ini untuk memanggil fungsi Lambda Anda secara langsung. Demikian pula, jika aplikasi Anda hanya terdiri dari satu atau dua fungsi Lambda dengan penanganan kesalahan langsung, pemanggilan Lambda langsung atau arsitektur berbasis peristiwa mungkin lebih mudah untuk diterapkan dan dipelihara.

Pengolahan data yang kompleks

Anda dapat menggunakan status Peta Ter distribusi Fungsi Langkah untuk secara bersamaan memproses kumpulan data Amazon S3 besar dengan fungsi Lambda. Ini efektif untuk banyak beban kerja paralel skala besar, termasuk memproses data semi-terstruktur seperti file JSON atau CSV. Namun, untuk transformasi data yang lebih kompleks atau analitik lanjutan, pertimbangkan alternatif berikut:

  • Pipeline transformasi data: Gunakan AWS Glue untuk pekerjaan ETL yang memproses data terstruktur atau semi-terstruktur dari berbagai sumber. AWS Glue sangat berguna ketika Anda memerlukan katalog data bawaan dan kemampuan manajemen skema.

  • Analisis data: Gunakan Amazon EMR untuk analisis data skala petabyte, terutama saat Anda membutuhkan alat Apache Hadoop ekosistem atau untuk beban kerja pembelajaran mesin yang melebihi batas memori Lambda. Konfigurasikan memori fungsi Lambda

CPU-intensive beban kerja

Meskipun Fungsi Langkah dapat mengatur CPU-intensive tugas, fungsi Lambda mungkin tidak cocok untuk beban kerja ini karena sumber daya CPU-nya yang terbatas. Untuk operasi komputasi intensif dalam alur kerja Anda, pertimbangkan alternatif berikut:

  • Orkestrasi kontainer: Gunakan Fungsi Langkah untuk mengelola tugas Amazon Elastic Container Service (Amazon ECS) untuk sumber daya komputasi yang lebih konsisten dan dapat diskalakan.

  • Pemrosesan batch: Integrasikan AWS Batch dengan Fungsi Langkah untuk mengelola pekerjaan batch komputasi intensif yang memerlukan penggunaan CPU berkelanjutan.