Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memohon fungsi Lambda yang tahan lama
Fungsi Lambda yang tahan lama mendukung metode pemanggilan yang sama dengan fungsi Lambda standar. Anda dapat menjalankan fungsi tahan lama secara sinkron, asinkron, atau melalui pemetaan sumber peristiwa. Proses pemanggilan identik dengan fungsi standar, tetapi fungsi yang tahan lama memberikan kemampuan tambahan untuk eksekusi jangka panjang dan manajemen status otomatis.
Metode doa
Pemanggilan sinkron: Memanggil fungsi yang tahan lama dan tunggu respons. Pemanggilan sinkron dibatasi oleh Lambda hingga 15 menit (atau kurang, tergantung pada fungsi yang dikonfigurasi dan batas waktu eksekusi). Gunakan pemanggilan sinkron saat Anda membutuhkan hasil segera atau saat mengintegrasikan dengan APIs dan layanan yang mengharapkan respons. Anda dapat menggunakan operasi tunggu untuk perhitungan yang efisien tanpa mengganggu pemanggil—pemanggilan menunggu seluruh eksekusi yang tahan lama selesai. Untuk eksekusi idempoten dimulai, gunakan parameter nama eksekusi seperti yang dijelaskan dalam Idempotency.
aws lambda invoke \ --function-name my-durable-function:1 \ --cli-binary-format raw-in-base64-out \ --payload '{"orderId": "12345"}' \ response.json
Pemanggilan asinkron: Antrikan acara untuk diproses tanpa menunggu respons. Lambda menempatkan acara dalam antrian dan segera kembali. Pemanggilan asinkron mendukung durasi eksekusi hingga 1 tahun. Gunakan pemanggilan asinkron untuk fire-and-forget skenario atau saat pemrosesan dapat terjadi di latar belakang. Untuk eksekusi idempoten dimulai, gunakan parameter nama eksekusi seperti yang dijelaskan dalam Idempotency.
aws lambda invoke \ --function-name my-durable-function:1 \ --invocation-type Event \ --cli-binary-format raw-in-base64-out \ --payload '{"orderId": "12345"}' \ response.json
Pemetaan sumber peristiwa: Konfigurasikan Lambda untuk secara otomatis menjalankan fungsi tahan lama Anda saat rekaman tersedia dari layanan berbasis streaming atau antrian seperti Amazon SQS, Kinesis, atau DynamoDB. Pemetaan sumber peristiwa polling sumber acara dan menjalankan fungsi Anda dengan kumpulan catatan. Untuk detail tentang penggunaan pemetaan sumber peristiwa dengan fungsi tahan lama, termasuk batas durasi eksekusi, lihat Pemetaan sumber peristiwa dengan fungsi tahan lama.
catatan
Fungsi tahan lama mendukung antrian huruf mati (DLQs) untuk penanganan kesalahan, tetapi tidak mendukung tujuan Lambda. Konfigurasikan DLQ untuk menangkap catatan dari pemanggilan yang gagal.
ARNs Persyaratan yang memenuhi syarat
Fungsi yang tahan lama membutuhkan pengidentifikasi yang memenuhi syarat untuk pemanggilan. Anda harus menjalankan fungsi tahan lama menggunakan nomor versi, alias, atau. $LATEST Anda dapat menggunakan ARN yang memenuhi syarat penuh atau nama fungsi dengan version/alias akhiran. Anda tidak dapat menggunakan pengenal yang tidak memenuhi syarat (tanpa versi atau akhiran alias).
Doa yang valid:
# Using full ARN with version number arn:aws:lambda:us-east-1:123456789012:function:my-durable-function:1 # Using full ARN with alias arn:aws:lambda:us-east-1:123456789012:function:my-durable-function:prod # Using full ARN with $LATEST arn:aws:lambda:us-east-1:123456789012:function:my-durable-function:$LATEST # Using function name with version number my-durable-function:1 # Using function name with alias my-durable-function:prod
Pemanggilan tidak valid:
# Unqualified ARN (not allowed) arn:aws:lambda:us-east-1:123456789012:function:my-durable-function # Unqualified function name (not allowed) my-durable-function
Persyaratan ini memastikan bahwa eksekusi yang tahan lama tetap konsisten sepanjang siklus hidupnya. Ketika eksekusi tahan lama dimulai, itu disematkan ke versi fungsi tertentu. Jika fungsi Anda berhenti dan dilanjutkan beberapa jam atau hari kemudian, Lambda akan memanggil versi yang sama yang memulai eksekusi, memastikan konsistensi kode di seluruh alur kerja.
Praktik terbaik
Gunakan versi bernomor atau alias untuk fungsi tahan lama produksi daripada. $LATEST Versi bernomor tidak dapat diubah dan memastikan pemutaran ulang deterministik. Secara opsional, alias menyediakan referensi stabil yang dapat Anda perbarui untuk menunjuk ke versi baru tanpa mengubah kode pemanggilan. Saat Anda memperbarui alias, eksekusi baru menggunakan versi baru, sementara eksekusi yang sedang berlangsung berlanjut dengan versi aslinya. Anda dapat menggunakannya $LATEST untuk membuat prototipe atau mempersingkat waktu penerapan selama pengembangan, memahami bahwa eksekusi mungkin tidak diputar ulang dengan benar (atau bahkan gagal) jika kode yang mendasarinya berubah selama menjalankan eksekusi.
Memahami siklus hidup eksekusi
Saat Anda menjalankan fungsi tahan lama, Lambda membuat eksekusi tahan lama yang dapat menjangkau beberapa pemanggilan fungsi:
-
Pemanggilan awal: Permintaan pemanggilan Anda membuat eksekusi baru yang tahan lama. Lambda memberikan ID eksekusi unik dan mulai memproses.
-
Eksekusi dan pos pemeriksaan: Saat fungsi Anda menjalankan operasi yang tahan lama, SDK membuat pos pemeriksaan yang melacak kemajuan.
-
Penangguhan (jika diperlukan): Jika fungsi Anda menggunakan penantian yang tahan lama, seperti
waitatauwaitForCallback, atau percobaan ulang langkah otomatis, Lambda menangguhkan eksekusi dan menghentikan pengisian daya untuk waktu komputasi. -
Dimulainya kembali: Ketika tiba waktunya untuk melanjutkan (termasuk setelah mencoba lagi), Lambda memanggil fungsi Anda lagi. SDK memutar ulang log pos pemeriksaan dan melanjutkan dari tempat eksekusi dijeda.
-
Penyelesaian: Ketika fungsi Anda mengembalikan hasil akhir atau melempar kesalahan yang tidak tertangani, eksekusi tahan lama selesai.
Untuk pemanggilan sinkron, pemanggil menunggu seluruh eksekusi tahan lama selesai, termasuk operasi tunggu apa pun. Jika eksekusi melebihi batas waktu pemanggilan (15 menit atau kurang), waktu pemanggilan habis. Untuk pemanggilan asinkron, Lambda segera kembali dan eksekusi berlanjut secara independen. Gunakan eksekusi tahan lama APIs untuk melacak status eksekusi dan mengambil hasil akhir.
Memanggil dari kode aplikasi
Gunakan AWS SDKs untuk memanggil fungsi tahan lama dari kode aplikasi Anda. Proses pemanggilan identik dengan fungsi standar:
Doa berantai
Fungsi yang tahan lama dapat memanggil fungsi tahan lama dan tidak tahan lama lainnya menggunakan invoke operasi dari. DurableContext Ini menciptakan pemanggilan berantai di mana fungsi pemanggilan menunggu (menangguhkan) agar fungsi yang dipanggil selesai:
Pemanggilan berantai membuat pos pemeriksaan dalam fungsi panggilan. Jika fungsi pemanggilan terputus, ia dilanjutkan dari pos pemeriksaan dengan hasil fungsi yang dipanggil, tanpa memanggil kembali fungsi tersebut.
catatan
Pemanggilan rantai lintas akun tidak didukung. Fungsi yang dipanggil harus berada di AWS akun yang sama dengan fungsi pemanggilan.