

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
<a name="snapstart-runtime-hooks-python"></a>

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](https://pypi.org/project/snapshot-restore-py/). 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
<a name="runtime-hooks-registration-python"></a>

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_snapshot`dan`@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](configuration-timeout.md) (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
<a name="runtime-hooks-python-code-sample"></a>

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](https://github.com/aws/snapshot-restore-py/tree/main/examples) di AWS GitHub repositori.