Menyelesaikan masalah invokasi di Lambda - AWS Lambda

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:

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.