View a markdown version of this page

SDK eksekusi tahan lama - AWS Lambda

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

SDK eksekusi tahan lama

SDK eksekusi tahan lama adalah fondasi untuk membangun fungsi yang tahan lama. Ini menyediakan primitif untuk pemeriksaan kemajuan, menangani percobaan ulang, dan mengelola aliran eksekusi. SDK mengabstraksi kompleksitas manajemen pos pemeriksaan dan pemutaran ulang, memungkinkan Anda menulis kode berurutan yang secara otomatis menjadi toleran terhadap kesalahan.

SDK tersedia untuk JavaScript,, Python TypeScript, Java, dan C # (.NET). Untuk dokumentasi API lengkap, tutorial memulai cepat, dan panduan khusus bahasa, lihat Panduan Pengembang SDK Eksekusi Tahan AWS Lama.

Apa yang dilakukan SDK

Manajemen pos pemeriksaan: SDK secara otomatis membuat pos pemeriksaan saat fungsi Anda menjalankan operasi yang tahan lama. Setiap pos pemeriksaan mencatat jenis operasi, input, dan hasil. Ketika fungsi Anda menyelesaikan satu langkah, SDK mempertahankan pos pemeriksaan sebelum melanjutkan. Ini memastikan fungsi Anda dapat melanjutkan dari operasi yang selesai jika terganggu.

Koordinasi putar ulang: Saat fungsi Anda dilanjutkan setelah jeda atau interupsi, SDK melakukan pemutaran ulang. Ini menjalankan kode Anda dari awal tetapi melewatkan operasi yang telah selesai, menggunakan hasil pos pemeriksaan yang disimpan alih-alih mengeksekusinya kembali. SDK memastikan pemutaran ulang bersifat deterministik. Dengan input dan log pos pemeriksaan yang sama, fungsi Anda menghasilkan hasil yang sama.

Isolasi status: SDK mempertahankan status eksekusi secara terpisah dari logika bisnis Anda. Setiap eksekusi tahan lama memiliki log pos pemeriksaan sendiri yang tidak dapat diakses oleh eksekusi lain. SDK mengenkripsi data pos pemeriksaan saat diam dan memastikan status tetap konsisten di seluruh pemutaran ulang.

Untuk penjelasan rinci tentang cara kerja checkpointing dan perilaku pemutaran ulang, lihat Konsep Utama di Panduan Pengembang SDK AWS Eksekusi Tahan Lama.

Operasi tahan gangguan

SDK menyediakan fungsi Anda dengan DurableContext objek. Konteks ini menggantikan konteks Lambda standar dan menyediakan metode untuk membuat pos pemeriksaan, mengelola alur eksekusi, dan berkoordinasi dengan sistem eksternal.

Ini DurableContext menyediakan operasi berikut untuk membangun alur kerja yang tahan lama:

Operasi Deskripsi
Langkah Jalankan dan periksa unit kerja dengan strategi coba ulang yang dapat dikonfigurasi dan semantik eksekusi.
Tunggu Jeda eksekusi untuk durasi tertentu tanpa menghabiskan sumber daya komputasi.
Tunggu Kondisi Jajak pendapat untuk kondisi dengan checkpoint otomatis di antara upaya.
Panggilan balik Jeda eksekusi dan tunggu sistem eksternal memberikan masukan melalui API Lambda.
Memanggil Panggil fungsi Lambda lain dan tunggu hasilnya, dengan checkpointing otomatis.
Paralel Jalankan beberapa operasi secara bersamaan dengan kebijakan penyelesaian yang dapat dikonfigurasi.
Peta Memproses setiap item dalam koleksi secara bersamaan dengan kontrol konkurensi opsional.
Konteks Anak Buat konteks eksekusi terisolasi untuk mengelompokkan beberapa operasi.

Setiap operasi yang tahan lama menciptakan pos pemeriksaan secara otomatis, memastikan fungsi Anda dapat dilanjutkan dari titik mana pun. Untuk referensi API terperinci, contoh kode, dan penggunaan khusus bahasa, lihat Referensi SDK di Panduan Pengembang SDK Eksekusi Tahan AWS Lama.

Bagaimana operasi yang tahan lama diukur

Setiap operasi tahan lama yang Anda panggil DurableContext menciptakan pos pemeriksaan untuk melacak kemajuan eksekusi dan menyimpan data status. Operasi ini dikenakan biaya berdasarkan penggunaannya, dan pos pemeriksaan mungkin berisi data yang berkontribusi pada biaya penulisan dan penyimpanan data Anda. Data yang disimpan termasuk data peristiwa pemanggilan, muatan yang dikembalikan dari langkah-langkah, dan data yang diteruskan saat menyelesaikan panggilan balik. Memahami bagaimana operasi yang tahan lama diukur membantu Anda memperkirakan biaya eksekusi dan mengoptimalkan alur kerja Anda. Untuk detail tentang harga, lihat halaman harga Lambda.

Ukuran muatan mengacu pada ukuran data serial yang dipertahankan oleh operasi yang tahan lama. Data diukur dalam byte dan ukurannya dapat bervariasi tergantung pada serializer yang digunakan oleh operasi. Muatan operasi bisa menjadi hasil itu sendiri untuk penyelesaian yang berhasil, atau objek kesalahan serial jika operasi gagal.

Operasi dasar

Operasi dasar adalah blok bangunan mendasar untuk fungsi tahan lama:

Operasi Waktu pos pemeriksaan Jumlah operasi Data tetap ada
Eksekusi Dimulai 1 Ukuran muatan masukan
Eksekusi Selesai (Succeeded/Failed/Stopped) 0 Ukuran muatan keluaran
Langkah Retry/Succeeded/Failed 1 + N percobaan ulang Mengembalikan ukuran muatan dari setiap upaya
Tunggu Dimulai 1 N/A
WaitForCondition Setiap upaya jajak pendapat 1 + N jajak pendapat Mengembalikan ukuran muatan dari setiap upaya jajak pendapat
Invocation-level Coba lagi Dimulai 1 Payload untuk objek kesalahan

Operasi panggilan balik

Operasi panggilan balik memungkinkan fungsi Anda untuk menjeda dan menunggu sistem eksternal memberikan masukan. Operasi ini membuat pos pemeriksaan saat panggilan balik dibuat dan setelah selesai:

Operasi Waktu pos pemeriksaan Jumlah operasi Data tetap ada
CreateCallback Dimulai 1 N/A
Penyelesaian panggilan balik melalui panggilan API Selesai 0 Muatan panggilan balik
WaitForCallback Dimulai 3 + N percobaan ulang (konteks + panggilan balik + langkah) Payload dikembalikan oleh upaya langkah pengirim, ditambah dua salinan payload callback

Operasi majemuk

Operasi gabungan menggabungkan beberapa operasi tahan lama untuk menangani pola koordinasi yang kompleks seperti eksekusi paralel, pemrosesan array, dan konteks bersarang:

Operasi Waktu pos pemeriksaan Jumlah operasi Data tetap ada
Paralel Dimulai 1 + N cabang (1 konteks induk + N konteks anak) Hingga dua salinan ukuran muatan yang dikembalikan dari setiap cabang, ditambah status setiap cabang
Peta Dimulai 1 + N cabang (1 konteks induk + N konteks anak) Hingga dua salinan ukuran payload yang dikembalikan dari setiap iterasi, ditambah status setiap iterasi
Pembantu janji Selesai 1 Ukuran muatan yang dikembalikan dari janji
RunInChildContext Succeeded/Failed 1 Mengembalikan ukuran payload dari konteks anak

Untuk konteks, seperti dari runInChildContext atau digunakan secara internal oleh operasi gabungan, hasil yang lebih kecil dari 256 KB diperiksa secara langsung. Hasil yang lebih besar tidak disimpan — sebaliknya, mereka direkonstruksi selama pemutaran ulang dengan memproses ulang operasi konteks.