Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyelesaikan masalah invokasi di Lambda
Saat Anda memanggil fungsi Lambda, Lambda memvalidasi permintaan dan memeriksa kapasitas penskalaan sebelum mengirim kejadian ke fungsi Anda atau, untuk invokasi asinkron, ke antrean kejadian. Kesalahan invokasi dapat disebabkan oleh masalah parameter permintaan, struktur kejadian, pengaturan fungsi, izin pengguna, izin sumber daya, atau batas.
Jika Anda memanggil fungsi secara langsung, Anda melihat kesalahan invokasi apa pun dalam respons dari Lambda. Jika Anda memanggil fungsi secara asinkron dengan pemetaan sumber kejadian atau melalui layanan lain, Anda mungkin menemukan kesalahan di log, antrean surat gagal, atau tujuan kejadian-gagal. Opsi penanganan kesalahan dan perilaku percobaan ulang berbeda-beda tergantung pada cara Anda memanggil fungsi dan jenis kesalahan.
Untuk daftar tipe kesalahan yang dapat dikembalikan oleh operasi Invoke
, lihat Panggil.
IAM: lambda: InvokeFunction tidak diizinkan
Kesalahan: Pengguna: arn:aws:iam: :123456789012: pengguna/pengembang tidak berwenang untuk melakukan: lambda: on resource: my-function InvokeFunction
Pengguna Anda, atau peran yang Anda asumsikan, harus memiliki izin untuk menjalankan fungsi. Persyaratan ini juga berlaku untuk fungsi Lambda dan sumber daya komputasi lainnya yang memanggil fungsi. Tambahkan kebijakan AWS terkelola AWSLambdaRoleke pengguna Anda, atau tambahkan kebijakan khusus yang memungkinkan lambda:InvokeFunction
tindakan pada fungsi target.
catatan
Nama IAM action (lambda:InvokeFunction
) mengacu pada operasi Invoke
LambdaAPI.
Untuk informasi selengkapnya, lihat Mengelola izin di AWS Lambda.
Lambda: Tidak dapat menemukan bootstrap yang valid (Runtime. InvalidEntrypoint)
Kesalahan: Tidak dapat menemukan bootstrap yang valid: [/var/task/bootstrap /opt/bootstrap]
Kesalahan ini biasanya terjadi ketika root paket penyebaran Anda tidak berisi file yang dapat dieksekusi bernama. bootstrap
Misalnya, jika Anda menerapkan provided.al2023
fungsi dengan file.zip, bootstrap
file harus berada di root file.zip, bukan di direktori.
Lambda: Operasi tidak dapat dilakukan ResourceConflictException
KesalahanResourceConflictException:: Operasi tidak dapat dilakukan saat ini. Fungsi saat sedang dalam status: Tertunda
Saat Anda menghubungkan fungsi ke cloud pribadi virtual (VPC) pada saat pembuatan, fungsi memasuki Pending
status sementara Lambda membuat antarmuka jaringan elastis. Selama waktu ini, Anda tidak dapat memanggil atau memodifikasi fungsi Anda. Jika Anda menghubungkan fungsi Anda ke VPC setelah pembuatan, Anda dapat memanggilnya saat pembaruan tertunda, tetapi Anda tidak dapat mengubah kode atau konfigurasinya.
Untuk informasi selengkapnya, lihat Status fungsi Lambda.
Lambda: Fungsi tertahan dalam Tertunda
Kesalahan: Fungsi tertahan dalam status Pending
selama beberapa menit.
Jika fungsi macet dalam Pending
status selama lebih dari enam menit, panggil salah satu API operasi berikut untuk membuka blokir:
Lambda membatalkan operasi yang tertunda dan menempatkan fungsi ke keadaan Failed
. Anda kemudian dapat mencoba pembaruan lain.
Lambda: Salah satu fungsi menggunakan semua konkurensi
Masalah: Satu fungsi sedang menggunakan semua konkurensi yang tersedia, yang menyebabkan fungsi lain dibatasi.
Untuk membagi konkurensi AWS akun Anda yang tersedia di AWS Wilayah menjadi kumpulan, gunakan konkurensi cadangan. Konkurensi cadangan memastikan fungsi dapat selalu menskalakan ke konkurensi yang ditetapkan, dan fungsi tidak menskalakan melebihi konkurensi yang ditetapkan.
Umum: Tidak dapat memanggil fungsi dengan akun atau layanan lain
Masalah: Anda dapat memanggil fungsi secara langsung, tetapi tidak dijalankan ketika layanan atau akun lain memanggilnya.
Anda memberikan izin kepada akun dan layanan lain untuk memanggil fungsi dalam kebijakan berbasis sumber daya milik fungsi. Jika pemanggil ada di akun lain, pengguna tersebut juga harus memiliki izin untuk memanggil fungsi.
Umum: Invokasi fungsi adalah perulangan
Masalah: Fungsi dipanggil secara berulang terus-menerus.
Ini biasanya terjadi ketika fungsi Anda mengelola sumber daya dalam AWS layanan yang sama yang memicunya. Misalnya, ini memungkinkan untuk membuat fungsi yang menyimpan objek dalam bucket Amazon Simple Storage Service (Amazon S3) yang dikonfigurasi dengan notifikasi yang kembali memanggil fungsi. Untuk menghentikan fungsi agar tidak berjalan, kurangi konkurensi yang tersedia menjadi nol, yang membatasi semua pemanggilan future. Selanjutnya, identifikasi jalur kode atau kesalahan konfigurasi yang menyebabkan invokasi berulang. Lambda secara otomatis mendeteksi dan menghentikan loop rekursif untuk beberapa layanan dan. AWS SDKs Untuk informasi selengkapnya, lihat Gunakan deteksi loop rekursif Lambda untuk mencegah loop tak terbatas.
Lambda: Perutean alias dengan konkurensi terprovisi
Masalah: Konkurensi terprovisi melimpahkan invokasi selama perutean alias.
Lambda menggunakan model probabilistik sederhana untuk mendistribusikan lalu lintas di antara dua versi fungsi. Pada tingkat lalu lintas rendah, Anda mungkin melihat varians tinggi di antara persentase lalu lintas yang dikonfigurasi dan aktual di setiap versi. Jika fungsi Anda menggunakan konkurensi terprovisi, Anda dapat menghindari invokasi limpahan dengan mengonfigurasi jumlah yang lebih tinggi dari instans konkurensi terprovisi selama perutean alias aktif.
Lambda: Mulai awal dengan konkurensi terprovisi
Masalah: Anda melihat mulai awal setelah mengaktifkan konkurensi terprovisi.
Ketika jumlah eksekusi bersamaan pada fungsi kurang dari atau sama dengan tingkat konkurensi terprovisi yang dikonfigurasi, mulai awal seharusnya tidak ada. Untuk membantu Anda mengonfirmasi jika konkurensi terprovisi beroperasi secara normal, lakukan hal berikut:
-
Periksa apakah concurrency terprovisi diaktifkan pada versi fungsi atau alias.
catatan
Konkurensi yang disediakan tidak dapat dikonfigurasi pada versi fungsi yang tidak dipublikasikan ($). LATEST
-
Pastikan pemicu Anda memanggil versi fungsi atau alias yang benar. Misalnya, jika Anda menggunakan Amazon API Gateway, periksa apakah API Gateway memanggil versi fungsi atau alias dengan konkurensi yang disediakan, bukan $. LATEST Untuk mengonfirmasi bahwa konkurensi yang disediakan sedang digunakan, Anda dapat memeriksa metrik AmazonProvisionedConcurrencyInvocations . CloudWatch Nilai bukan nol menunjukkan fungsi ini memproses invokasi pada lingkungan eksekusi yang diinisialisasi.
-
Tentukan apakah konkurensi fungsi Anda melebihi tingkat konkurensi yang disediakan yang dikonfigurasi dengan memeriksa metrik. ProvisionedConcurrencySpilloverInvocations CloudWatch Nilai bukan nol menunjukkan semua konkurensi terprovisi sedang digunakan dan beberapa invokasi terjadi dengan mulai awal.
-
Periksa frekuensi invokasi (permintaan per detik). Fungsi dengan konkurensi terprovisi memiliki tingkat maksimum 10 permintaan per detik per konkurensi terprovisi. Misalnya, fungsi yang dikonfigurasi dengan 100 konkurensi terprovisi dapat menangani 1.000 permintaan per detik. Jika tingkat invokasi melebihi 1.000 permintaan per detik, beberapa mulai awal dapat terjadi.
Lambda: Mulai awal dengan versi baru
Masalah: Anda melihat mulai awal saat men-deploy versi baru dari fungsi Anda.
Ketika Anda memperbarui alias fungsi, Lambda secara otomatis menggeser konkurensi terprovisi ke versi baru berdasarkan bobot yang dikonfigurasi di alias.
Kesalahan:KMSDisabledException: Lambda tidak dapat mendekripsi variabel lingkungan karena KMS kunci yang digunakan dinonaktifkan. Silakan periksa pengaturan KMS tombol fungsi.
Kesalahan ini dapat terjadi jika kunci AWS Key Management Service (AWS KMS) Anda dinonaktifkan, atau jika hibah yang memungkinkan Lambda menggunakan kunci dicabut. Jika pemberian izin tidak ada, konfigurasikan fungsi agar menggunakan kunci yang berbeda. Selanjutnya, atur ulang kunci kustom untuk membuat ulang pemberian izin.
EFS: Fungsi tidak dapat me-mount sistem EFS file
Kesalahan:EFSMountFailureException: Fungsi tidak dapat me-mount sistem EFS file dengan titik akses arn:aws:elasticfilesystem:us-east- 2:123456789012: access-point/fsap-015cxmplb72b405fd.
Permintaan pemasangan untuk sistem file fungsi ditolak. Periksa izin fungsi, dan konfirmasikan bahwa sistem file dan titik aksesnya sudah ada dan siap digunakan.
EFS: Fungsi tidak dapat terhubung ke sistem EFS file
Kesalahan:EFSMountConnectivityException: Fungsi tidak dapat terhubung ke sistem EFS file Amazon dengan titik akses arn:aws:elasticfilesystem:us-east- 2:123456789012: access-point/fsap-015cxmplb72b405fd. Periksa konfigurasi jaringan Anda dan coba kembali.
Fungsi tidak dapat membuat koneksi ke sistem file fungsi dengan NFS protokol (TCPport 2049). Periksa grup keamanan dan konfigurasi perutean untuk VPC subnet.
Jika Anda mendapatkan kesalahan ini setelah memperbarui pengaturan VPC konfigurasi fungsi Anda, coba lepaskan dan atur ulang sistem file.
EFS: Fungsi tidak dapat me-mount sistem EFS file karena batas waktu
Kesalahan:EFSMountTimeoutException: Fungsi tidak dapat me-mount sistem EFS file dengan titik akses {arn:aws:elasticfilesystem:us-east- 2:123456789012:access-point/fsap-015cxmplb72b405fd} karena waktu pemasangan habis.
Fungsi dapat terhubung ke sistem file fungsi, tetapi waktu operasi pemasangan habis. Coba lagi setelah beberapa saat dan pertimbangkan untuk membatasi konkurensi fungsi guna mengurangi beban sistem file.
Lambda: Lambda mendeteksi proses IO yang memakan waktu terlalu lama
EFSIOException: Instance fungsi ini dihentikan karena Lambda mendeteksi proses IO yang memakan waktu terlalu lama.
Waktu invokasi sebelumnya habis dan Lambda tidak dapat menghentikan handler fungsi. Masalah ini dapat terjadi ketika sistem file yang dilampirkan kehabisan kredit lonjakan dan throughput awal tidak cukup. Untuk meningkatkan throughput, Anda dapat meningkatkan ukuran sistem file atau menggunakan throughput terprovisi.