Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Eksekusi SDK yang tahan lama
SDK eksekusi yang tahan lama adalah fondasi untuk membangun fungsi yang tahan lama. Ini memberikan primitif untuk memeriksa kemajuan, menangani percobaan ulang, dan mengelola alur eksekusi. SDK mengabstraksi kompleksitas manajemen pos pemeriksaan dan pemutaran ulang, memungkinkan Anda menulis kode sekuensial yang secara otomatis menjadi toleran terhadap kesalahan.
SDK tersedia untuk JavaScript,, Python TypeScript, dan Java. Untuk dokumentasi API lengkap, tutorial mulai cepat, dan panduan khusus bahasa, lihat Panduan Pengembang SDK Eksekusi AWS Tahan 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. Saat fungsi Anda menyelesaikan langkah, SDK akan tetap berada di pos pemeriksaan sebelum melanjutkan. Ini memastikan fungsi Anda dapat dilanjutkan dari operasi yang selesai jika terputus.
Koordinasi pemutaran ulang: Saat fungsi Anda dilanjutkan setelah jeda atau interupsi, SDK akan 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 pemeriksaannya sendiri yang tidak dapat diakses oleh eksekusi lain. SDK mengenkripsi data pos pemeriksaan saat istirahat dan memastikan status tetap konsisten di seluruh pemutaran ulang.
Untuk penjelasan mendetail tentang cara kerja checkpointing dan perilaku pemutaran ulang, lihat Konsep utama dalam Panduan Pengembang SDK Eksekusi AWS 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.
DurableContextIni 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 menggunakan sumber daya komputasi. |
| Tunggu Kondisi | Polling untuk kondisi dengan pos pemeriksaan otomatis di antara upaya. |
| Callback | Jeda eksekusi dan tunggu sistem eksternal memberikan masukan melalui API Lambda. |
| Memohon | Panggil fungsi Lambda lain dan tunggu hasilnya, dengan pos pemeriksaan otomatis. |
| Paralel | Jalankan beberapa operasi secara bersamaan dengan kebijakan penyelesaian yang dapat dikonfigurasi. |
| Peta | Memproses setiap item dalam koleksi bersamaan dengan kontrol konkurensi opsional. |
| Konteks Anak | Buat konteks eksekusi terisolasi untuk mengelompokkan beberapa operasi. |
Setiap operasi yang tahan lama membuat pos pemeriksaan secara otomatis, memastikan fungsi Anda dapat dilanjutkan dari titik mana pun. Untuk referensi API mendetail, contoh kode, dan penggunaan khusus bahasa, lihat Referensi SDK di Panduan Pengembang SDK Eksekusi AWS Tahan Lama.
Bagaimana operasi tahan lama diukur
Setiap operasi tahan lama yang Anda panggil DurableContext membuat 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 mencakup data peristiwa pemanggilan, muatan yang dikembalikan dari langkah, dan data yang diteruskan saat menyelesaikan panggilan balik. Memahami bagaimana operasi 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 tetap ada 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 bertahan |
|---|---|---|---|
| Eksekusi | Dimulai | 1 | Ukuran muatan masukan |
| Eksekusi | Selesai (Succeeded/Failed/Stopped) | 0 | Ukuran muatan keluaran |
| Langkah | Retry/Succeeded/Failed | 1 + N mencoba lagi | Ukuran muatan yang dikembalikan dari setiap upaya |
| Tunggu | Dimulai | 1 | N/A |
| WaitForCondition | Setiap upaya jajak pendapat | 1 + N jajak pendapat | Ukuran payload yang dikembalikan dari setiap upaya polling |
| Invocation-level Coba lagi | Dimulai | 1 | Muatan untuk objek kesalahan |
Operasi callback
Operasi callback memungkinkan fungsi Anda berhenti sejenak dan menunggu sistem eksternal memberikan masukan. Operasi ini membuat pos pemeriksaan saat callback dibuat dan saat selesai:
| Operasi | Waktu pos pemeriksaan | Jumlah operasi | Data bertahan |
|---|---|---|---|
| CreateCallback | Dimulai | 1 | N/A |
| Penyelesaian panggilan balik melalui panggilan API | Selesai | 0 | Payload panggilan balik |
| WaitForCallback | Dimulai | 3 + N mencoba ulang (konteks+panggilan balik+langkah) | Muatan yang 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 bertahan |
|---|---|---|---|
| Paralel | Dimulai | 1 + N cabang (1 konteks induk+N konteks anak) | Hingga dua salinan ukuran muatan yang dikembalikan dari setiap cabang, ditambah status masing-masing 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 |
| Penolong janji | Selesai | 1 | Ukuran muatan yang dikembalikan dari janji |
| RunInChildContext | Succeeded/Failed | 1 | Ukuran payload yang dikembalikan 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.