Memahami model pemrograman Lambda - AWS Lambda

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

Memahami model pemrograman Lambda

Lambda menawarkan dua model pemrograman: fungsi standar yang berjalan hingga 15 menit, dan Fungsi Tahan Lama yang dapat berjalan hingga satu tahun. Meskipun keduanya berbagi konsep inti, Fungsi Tahan Lama menambahkan kemampuan untuk alur kerja stateful yang berjalan lama.

Lambda menyediakan model pemrograman yang umum untuk semua runtime. Model pemrograman mendefinisikan antarmuka antara kode Anda dan sistem Lambda. Anda memberi tahu Lambda titik masuk ke fungsi Anda dengan mendefinisikan handler dalam konfigurasi fungsi. Runtime berlalu dengan objek ke handler yang berisi acara invokasi dan konteks, seperti nama fungsi dan ID permintaan.

Untuk Fungsi Tahan Lama, handler juga menerima DurableContext objek yang menyediakan:

  • Kemampuan Checkpointing melalui step ()

  • Tunggu manajemen negara melalui wait () dan waitForCallback ()

  • Persistensi status otomatis di antara pemanggilan

Setelah handler selesai memproses peristiwa pertama, runtime mengirimkan peristiwa lain. Untuk Fungsi Tahan Lama, handler dapat menjeda eksekusi antar langkah, dan Lambda akan secara otomatis menyimpan dan memulihkan status saat fungsi dilanjutkan. Kelas fungsi tetap di dalam memori, sehingga klien dan variabel yang dinyatakan di luar metode handler dalam kode inisialisasi dapat digunakan kembali. Untuk menghemat waktu pemrosesan pada peristiwa berikutnya, buat sumber daya yang dapat digunakan kembali seperti klien AWS SDK selama inisialisasi. Setelah diinisialisasi, setiap instans fungsi Anda dapat memproses ribuan permintaan.

Fungsi Anda juga memiliki akses ke penyimpanan lokal di /tmp direktori, cache sementara yang dapat digunakan untuk beberapa pemanggilan. Untuk informasi selengkapnya, lihat Lingkungan eksekusi.

Saat AWS X-Ray pelacakan diaktifkan, runtime mencatat subsegmen terpisah untuk inisialisasi dan eksekusi.

Runtime menangkap output logging dari fungsi Anda dan mengirimkannya ke Amazon CloudWatch Logs. Selain mencatat output fungsi Anda, runtime juga mencatat entri saat invokasi fungsi dimulai dan berakhir. Ini termasuk catatan laporan dengan ID permintaan, durasi yang ditagih, durasi inisialisasi, dan perincian lainnya. Jika fungsi Anda menampilkan kesalahan, runtime mengembalikan kesalahan tersebut ke pemanggil.

catatan

Logging tunduk pada kuota CloudWatch Log. Data log dapat hilang karena pelambatan atau, dalam beberapa kasus, ketika satu instans fungsi Anda dihentikan.

Perbedaan utama untuk Fungsi Tahan Lama:

  • Status secara otomatis bertahan di antara langkah-langkah

  • Fungsi dapat menjeda eksekusi tanpa menghabiskan sumber daya

  • Langkah-langkah secara otomatis dicoba ulang pada kegagalan

  • Kemajuan dilacak melalui pos pemeriksaan

Lambda memperluas fungsi Anda dengan menjalankan instans tambahannya seiring peningkatan permintaan, dan dengan menghentikan instans seiring dengan penurunan permintaan. Model ini mengarah pada variasi dalam arsitektur aplikasi, seperti:

  • Kecuali dinyatakan sebaliknya, permintaan masuk dapat diproses di luar pesanan atau bersamaan.

  • Jangan mengandalkan contoh fungsi Anda yang berumur panjang, alih-alih simpan status aplikasi Anda di tempat lain.

  • Gunakan penyimpanan lokal dan objek tingkat kelas untuk meningkatkan performa, tetapi jaga ukuran paket deployment Anda seminimum mungkin dan jumlah data yang Anda transfer ke lingkungan eksekusi.

Untuk pengenalan langsung model pemrograman dalam bahasa pemrograman pilihan Anda, lihat bab berikut.