Kait SnapStart runtime Lambda untuk Python - AWS Lambda

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

Kait SnapStart runtime Lambda untuk Python

Anda dapat menggunakan kait runtime untuk mengimplementasikan kode sebelum Lambda membuat snapshot atau setelah Lambda melanjutkan fungsi dari snapshot. Kait runtime Python tersedia sebagai bagian dari pustaka Snapshot Restore for Python open-source, yang disertakan dalam runtime terkelola Python. Pustaka ini menyediakan dua dekorator yang dapat Anda gunakan untuk menentukan kait runtime Anda:

  • @register_before_snapshot: Untuk fungsi yang ingin Anda jalankan sebelum Lambda membuat snapshot.

  • @register_after_restore: Untuk fungsi yang ingin Anda jalankan saat Lambda melanjutkan fungsi dari snapshot.

Atau, Anda dapat menggunakan metode berikut untuk mendaftarkan callable untuk kait runtime:

  • register_before_snapshot(func, *args, **kwargs)

  • register_after_restore(func, *args, **kwargs)

Registrasi dan eksekusi runtime hook

Urutan Lambda mengeksekusi kait runtime Anda ditentukan oleh urutan pendaftaran:

  • Sebelum snapshot: Dieksekusi dalam urutan terbalik pendaftaran

  • Setelah snapshot: Dieksekusi dalam urutan pendaftaran

Urutan pendaftaran kait runtime tergantung pada bagaimana Anda mendefinisikan kait. Saat menggunakan dekorator (@register_before_snapshotdan@register_after_restore), urutan pendaftaran mengikuti urutan impor, definisi, atau eksekusi dalam kode Anda. Jika Anda memerlukan kontrol lebih besar atas pesanan pendaftaran, gunakan register_after_restore() metode register_before_snapshot() dan bukan dekorator.

Pastikan bahwa semua kait terdaftar diimpor dengan benar dan disertakan dalam kode fungsi Anda. Jika Anda mendaftarkan kait runtime dalam file atau modul terpisah, Anda harus memastikan bahwa modul diimpor, baik secara langsung atau sebagai bagian dari paket yang lebih besar, dalam file handler fungsi Anda. Jika file atau modul tidak diimpor dalam penangan fungsi, Lambda mengabaikan kait runtime.

catatan

Saat Lambda membuat snapshot, kode inisialisasi Anda dapat berjalan hingga 15 menit. Batas waktu adalah 130 detik atau batas waktu fungsi yang dikonfigurasi (maksimum 900 detik), mana yang lebih tinggi. Kait @register_before_snapshot runtime Anda dihitung terhadap batas waktu kode inisialisasi. Saat Lambda mengembalikan snapshot, runtime harus dimuat dan kait runtime harus selesai dalam batas @register_after_restore waktu tunggu (10 detik). Jika tidak, Anda akan mendapatkan SnapStartTimeoutException.

Contoh

Contoh handler berikut menunjukkan cara menjalankan kode sebelum checkpointing (@register_before_snapshot) dan setelah restoring (). @register_after_restore

from snapshot_restore_py import register_before_snapshot, register_after_restore def lambda_handler(event, context): # Handler code @register_before_snapshot def before_checkpoint(): # Logic to be executed before taking snapshots @register_after_restore def after_restore(): # Logic to be executed after restore

Untuk contoh lainnya, lihat Pemulihan Snapshot untuk Python di AWS GitHub repositori.