Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyelesaikan masalah deployment di Lambda
Saat Anda memperbarui fungsi Anda, Lambda menerapkan perubahan dengan meluncurkan instans baru dari fungsi dengan kode atau pengaturan yang diperbarui. Kesalahan deployment menghambat penggunaan versi baru dan dapat disebabkan oleh masalah dengan paket deployment, kode, izin, atau alat Anda.
Saat Anda menerapkan pembaruan ke fungsi Anda secara langsung dengan API Lambda atau dengan klien seperti AWS CLI, Anda dapat melihat kesalahan dari Lambda langsung di output. Jika Anda menggunakan layanan seperti AWS CloudFormation, AWS CodeDeploy, atau AWS CodePipeline, cari respons dari Lambda di log atau aliran peristiwa untuk layanan tersebut.
Topik berikut memberikan saran pemecahan masalah untuk kesalahan dan masalah yang mungkin Anda temui saat menggunakan LambdaAPI, konsol, atau alat. Jika Anda menemukan masalah yang tidak tercantum di sini, Anda dapat menggunakan tombol Umpan Balik di halaman ini untuk melaporkannya.
Untuk saran pemecahan masalah selengkapnya dan jawaban atas pertanyaan dukungan umum, kunjungi Pusat Pengetahuan AWS
Untuk informasi selengkapnya tentang debugging dan pemecahan masalah aplikasi Lambda, lihat
Topik
- Umum: Izin ditolak/Tidak dapat memuat file tersebut
- Umum: Terjadi kesalahan saat memanggil UpdateFunctionCode
- Amazon S3: Kode Kesalahan. PermanentRedirect
- Umum: Tidak dapat menemukan, tidak dapat memuat, tidak dapat mengimpor, kelas tidak ditemukan, tidak ada file atau direktori tersebut
- Umum: Metode handler tidak didefinisikan
- Lambda: Konversi lapisan gagal
- Lambda: atau InvalidParameterValueException RequestEntityTooLargeException
- Lambda: InvalidParameterValueException
- Lambda: Konkurensi dan kuota memori
Umum: Izin ditolak/Tidak dapat memuat file tersebut
Kesalahan: EACCES: izin ditolak, buka '/var/task/index.js'
Kesalahan: tidak dapat memuat file tersebut -- fungsi
Kesalahan: [Errno 13] Izin ditolak: '/var/task/function.py'
Runtime Lambda membutuhkan izin untuk membaca file dalam paket deployment Anda. Dalam notasi oktal izin Linux, Lambda membutuhkan 644 izin untuk file yang tidak dapat dieksekusi (rw-r - r--) dan 755 izin () untuk direktori dan file yang dapat dieksekusi. rwxr-xr-x
Di Linux dan macOS, gunakan chmod
perintah untuk mengubah izin file pada file dan direktori dalam paket penyebaran Anda. Misalnya, untuk memberikan file yang dapat dieksekusi izin yang benar, jalankan perintah berikut.
chmod 755 <filepath>
Untuk mengubah izin file di Windows, lihat Mengatur, Melihat, Mengubah, atau Menghapus Izin pada Objek
Umum: Terjadi kesalahan saat memanggil UpdateFunctionCode
Kesalahan: Terjadi kesalahan (RequestEntityTooLargeException) saat memanggil UpdateFunctionCode operasi
Saat Anda mengunggah paket penyebaran atau arsip lapisan langsung ke Lambda, ukuran ZIP file dibatasi hingga 50 MB. Untuk mengunggah file yang lebih besar, simpan file di Amazon S3 dan gunakan parameter S3Bucket dan S3Key.
catatan
Ketika Anda mengunggah file langsung dengan AWS CLI, AWS SDK, atau sebaliknya, ZIP file biner dikonversi ke base64, yang meningkatkan ukurannya sekitar 30%. Untuk memungkinkan hal ini, serta ukuran parameter lain dalam permintaan, batas ukuran permintaan aktual yang digunakan Lambda menjadi lebih besar. Oleh karena itu, batas sebesar 50 MB adalah perkiraan.
Amazon S3: Kode Kesalahan. PermanentRedirect
Kesalahan: Terjadi kesalahan saat GetObject. Kode Kesalahan S3: PermanentRedirect. Pesan Kesalahan S3: Bucket berada di wilayah: us-east-2. Harap gunakan wilayah ini untuk mencoba kembali permintaan ini
Saat Anda mengunggah paket deployment fungsi dari bucket Amazon S3, bucket harus berada di Wilayah yang sama dengan fungsi tersebut. Masalah ini dapat terjadi saat Anda menentukan objek Amazon S3 dalam panggilan ke UpdateFunctionCode, atau menggunakan paket dan perintah penerapan di or. AWS CLI AWS SAM CLI Buat bucket artefak deployment untuk setiap Wilayah tempat Anda mengembangkan aplikasi.
Umum: Tidak dapat menemukan, tidak dapat memuat, tidak dapat mengimpor, kelas tidak ditemukan, tidak ada file atau direktori tersebut
Kesalahan: Tidak dapat menemukan modul 'function'
Kesalahan: tidak dapat memuat file tersebut -- fungsi
Kesalahan: Tidak dapat mengimpor modul 'function'
Kesalahan: Kelas tidak ditemukan: function.Handler
Kesalahan: fork/exec /var/task/function: tidak ada file atau direktori tersebut
Kesalahan: Tidak dapat memuat jenis 'Function.Handler' dari susunan 'Function'.
Nama file atau kelas dalam konfigurasi handler fungsi tidak cocok dengan kode. Lihat bagian berikut untuk informasi selengkapnya.
Umum: Metode handler tidak didefinisikan
Kesalahan: index.handler tidak ditentukan atau tidak terekspor
Kesalahan: Handler 'handler' hilang di modul 'function'
Kesalahan: metode `penangan 'yang tidak ditentukan untuk # <:0x000055b76ccebf98> LambdaHandler
Kesalahan: Tidak ada metode publik yang dinamai handleRequest dengan tanda tangan metode yang sesuai yang ditemukan di kelas Function.handler
Kesalahan: Tidak dapat menemukan metode '' dalam tipe handleRequest 'Function.Handler' dari perakitan 'Fungsi'
Nama metode handler dalam konfigurasi handler fungsi tidak cocok dengan kode. Setiap runtime menentukan konvensi penamaan untuk handler, seperti filename
.methodname
. Handler adalah metode dalam kode fungsi Anda yang dijalankan oleh runtime saat fungsi Anda dipanggil.
Untuk beberapa bahasa, Lambda menyediakan pustaka dengan antarmuka yang mengharapkan metode handler memiliki nama tertentu. Untuk perincian tentang penamaan handler untuk setiap bahasa, lihat topik berikut.
Lambda: Konversi lapisan gagal
Kesalahan: Konversi lapisan Lambda gagal. Untuk saran tentang menyelesaikan masalah ini, lihat halaman Memecahkan masalah penerapan di Lambda di Panduan Pengguna Lambda.
Ketika Anda mengkonfigurasi fungsi Lambda dengan lapisan, Lambda menggabungkan layer dengan kode fungsi Anda. Jika proses ini gagal diselesaikan, Lambda mengembalikan kesalahan ini. Jika Anda mengalami kesalahan ini, lakukan langkah-langkah berikut:
Hapus file yang tidak digunakan dari lapisan Anda
Hapus tautan simbolis apa pun di lapisan Anda
Ganti nama file yang memiliki nama yang sama dengan direktori di salah satu lapisan fungsi Anda
Lambda: atau InvalidParameterValueException RequestEntityTooLargeException
Kesalahan: InvalidParameterValueException: Lambda tidak dapat mengonfigurasi variabel lingkungan Anda karena variabel lingkungan yang Anda berikan melebihi batas 4KB. String diukur: {"A1":” uSFe Y5 cyPiPn 7ATnx5bsm...
Kesalahan: RequestEntityTooLargeException: Permintaan harus lebih kecil dari 5120 byte untuk operasi UpdateFunctionConfiguration
Ukuran maksimum objek variabel yang disimpan dalam konfigurasi fungsi tidak boleh melebihi 4096 byte. Ini termasuk nama kunci, nilai, tanda kutip, koma, dan tanda kurung. Ukuran total badan HTTP permintaan juga terbatas.
{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Runtime": "nodejs20.x", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Environment": { "Variables":
{ "BUCKET": "amzn-s3-demo-bucket", "KEY": "file.txt" }
}, ... }
Dalam contoh ini, objek adalah 39 karakter dan menggunakan 39 byte ketika disimpan (tanpa spasi) sebagai string {"BUCKET":"amzn-s3-demo-bucket","KEY":"file.txt"}
. ASCIIKarakter standar dalam nilai variabel lingkungan masing-masing menggunakan satu byte. Karakter Extended ASCII dan Unicode dapat menggunakan antara 2 byte dan 4 byte per karakter.
Lambda: InvalidParameterValueException
Kesalahan: InvalidParameterValueException: Lambda tidak dapat mengonfigurasi variabel lingkungan Anda karena variabel lingkungan yang Anda berikan berisi kunci cadangan yang saat ini tidak didukung untuk modifikasi.
Lambda mencadangkan beberapa kunci variabel lingkungan untuk penggunaan internal. Misalnya, AWS_REGION
digunakan oleh runtime untuk menentukan Wilayah saat ini dan tidak dapat dibatalkan. Variabel lainnya, seperti PATH
, digunakan oleh runtime, tetapi dapat diperluas dalam konfigurasi fungsi Anda. Untuk daftar lengkap, lihat Variabel lingkungan runtime yang ditetapkan.
Lambda: Konkurensi dan kuota memori
Kesalahan: Ditentukan ConcurrentExecutions untuk fungsi mengurangi akun UnreservedConcurrentExecution di bawah nilai minimumnya
Kesalahan: Nilai MemorySize '' gagal memenuhi kendala: Anggota harus memiliki nilai kurang dari atau sama dengan 3008
Kesalahan ini terjadi ketika Anda melebihi kuota konkurensi atau memori untuk akun Anda. AWS Akun baru telah mengurangi kuota konkurensi dan memori. Untuk mengatasi kesalahan yang terkait dengan konkurensi, Anda dapat meminta peningkatan kuota. Anda tidak dapat meminta peningkatan kuota memori.
-
Konkurensi: Anda mungkin mendapatkan kesalahan jika mencoba membuat fungsi menggunakan konkurensi cadangan atau ketentuan, atau jika permintaan konkurensi per fungsi (PutFunctionConcurrency) melebihi kuota konkurensi akun Anda.
-
Memori: Kesalahan terjadi jika jumlah memori yang dialokasikan ke fungsi melebihi kuota memori akun Anda.