Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menguji dan men-debug fungsi tahan lama
Menguji dan men-debug fungsi tahan lama secara lokal bekerja mirip dengan fungsi Lambda biasa, dengan dukungan otomatis untuk checkpointing dan replay. Panduan ini mencakup skenario pengujian umum dan teknik pemecahan masalah.
Alur kerja pengujian lokal
Saat menguji fungsi tahan lama secara lokal, alur kerja berbeda dari fungsi Lambda biasa:
Alur kerja pengujian fungsi yang tahan lama
-
Bangun aplikasi Anda:
$sam build -
Panggil fungsi tahan lama Anda:
$sam local invoke MyDurableFunction --durable-execution-name test -
Periksa riwayat eksekusi jika diperlukan:
$sam local execution historyexecution-id
Skenario pengujian umum
Menguji perilaku checkpointing
Untuk menguji apakah fungsi Anda dengan benar status pos pemeriksaan:
# Example Python durable function def handler(event, context): # This will create a checkpoint context.wait(10) # Wait 10 seconds # Function resumes here after wait return {"message": "Function resumed after wait"}
Saat Anda menjalankan fungsi ini secara lokal, periode tunggu ditangani secara otomatis.
Menguji skenario panggilan balik
Untuk fungsi yang menunggu callback eksternal:
-
Mulai fungsi tahan lama Anda yang menunggu panggilan balik
-
Di terminal lain, selesaikan panggilan balik:
$sam local callback succeedcallback-id -
Amati fungsi melanjutkan eksekusi
Pemecahan masalah
Fungsi tahan lama tidak dijalankan dengan benar
Masalah: Fungsi tidak berperilaku sebagai fungsi yang tahan lama.
Solusi:
-
Verifikasi yang
DurableConfigdiatur dalam template SAM Anda -
Pastikan kode fungsi Anda menggunakan metode SDK fungsi yang tahan lama (mis.,
context.wait()) -
Periksa apakah Anda menggunakan runtime yang didukung (TypeScript, JavaScript, Python)
Tidak dapat mengambil riwayat eksekusi
Masalah: local execution history Perintah tidak mengembalikan hasil.
Solusi:
-
Verifikasi bahwa ID eksekusi sudah benar
-
Periksa apakah fungsi telah dipanggil setidaknya sekali
Perintah callback tidak berfungsi
Masalah: Perintah callback tidak menyelesaikan operasi yang tertunda.
Solusi:
-
Verifikasi ID callback sudah benar
-
Pastikan fungsi tersebut benar-benar menunggu panggilan balik
-
Verifikasi bahwa Anda menggunakan sintaks perintah callback yang benar
Kiat debugging
-
Gunakan riwayat eksekusi - Tinjau riwayat eksekusi untuk memahami alur fungsi tahan lama Anda
-
Uji secara bertahap - Mulailah dengan operasi tunggu sederhana sebelum menambahkan logika kompleks
-
Gunakan pencatatan verbose - Aktifkan pencatatan terperinci untuk melacak alur eksekusi
Pelajari selengkapnya
Untuk informasi selengkapnya tentang pengujian dan debugging, lihat:
-
Pengantar pengujian dengan sam local invoke- Dokumentasi panggilan lokal
-
sam local execution history- Riwayat eksekusi