View a markdown version of this page

Pemecahan Masalah - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan Masalah

Bagian ini menjelaskan cara men-debug dan memecahkan masalah umum saat bekerja dengan AWS Lambda MicroVM.

Akses shell

Gunakan akses shell untuk terhubung langsung ke microVM yang sedang berjalan untuk debugging dan pemecahan masalah.

Anda dapat terhubung ke shell microVM dengan dua cara:

  • Konsol — Pilih MicroVM Anda di konsol Lambda dan pilih Connect.

  • CLI — Hasilkan token shell dengancreate-microvm-shell-auth-token, lalu gunakan token untuk membuat koneksi.

Buat token shell, lalu hubungkan:

aws lambda-microvms create-microvm-shell-auth-token \ --microvm-identifier <id> --expiration-in-minutes 30 # In Console: select MicroVM -> Connect # In shell: ctr task ls, then ctr task exec -t --exec-id shell <id> /bin/sh

MicroVM harus dijalankan dengan konektor SHELL_INGRESS jaringan (arn:aws:lambda:us-east-1:aws:network-connector:aws-network-connector:SHELL_INGRESS). Jika microVM tidak diluncurkan dengan konektor ini, create-microvm-shell-auth-token mengembalikan aValidationException.

Untuk masalah lain:

  • Periksa terminationMessage bidang dalam get-microvm respons untuk microVM yang dihentikan.

  • Per CloudWatch iksa log build untuk masalah pembuatan gambar.

  • Periksa StateReason bidang untuk konektor jaringan dalam FAILED keadaan.

Pemecahan masalah

Bagian ini memberikan solusi untuk masalah umum saat bekerja dengan Lambda MicroVMS.

Gejala Kemungkinan penyebab dan resolusi
Pembuatan gambar gagal (CREATION_FAILED) Periksa log build di/aws/lambda/microvms/<image-name>. Verifikasi Dockerfile sintaks, izin Amazon S3, dan ketersediaan gambar dasar. Jalan docker build kan secara lokal untuk mereproduksi.
MicroVM macet PENDING Tunggu dan coba lagi. Jika persisten, periksa kesehatan layanan. Pastikan kuota konkurensi Anda tidak habis.
Aplikasi tidak merespons setelah dilanjutkan Terapkan kait /resume siklus hidup untuk membangun kembali koneksi dan memvalidasi status. Periksa apakah aplikasi Anda terikat ke port 8080 (atau port yang dikonfigurasi) setelah dilanjutkan.
502 Bad Gateway dari titik akhir Aplikasi macet atau tidak mendengarkan. Periksa log runtime. Veri EXPOSE fikasi dan CMD masukDockerfile. Jika melanjutkan otomatis, microVM mungkin gagal melanjutkan (periksa status dengan menggunakanget-microvm).
429 Terlalu Banyak Permintaan Tingkat permintaan terlampaui. Coba lagi dengan backoff eksponensial dan jitter.
Koneksi terputus Waktu tunggu idle dipicu. Terapkan ping/pong keepalives. Atau maxIdleDurationSeconds perpanjang kebijakan idle.
Latensi tinggi pada titik akhir Saturasi bandwidth. Periksa apakah lalu lintas melebihi kemampuan bandwidth untuk ukuran microVM Anda. Skala hingga ukuran yang lebih besar.
Token autentikasi kedaluwarsa (403) Token memiliki kedaluwarsa yang dapat dikonfigurasi. Hasilkan token baru sebelum yang lama kedaluwarsa. Terapkan logika penyegaran token di klien Anda.
Keluar VPC tidak berfungsi Verifikasi konektor jaringan dalam ACTIVE keadaan. Periksa aturan grup keamanan mengizinkan lalu lintas keluar. Konfirmasikan bahwa subnet memiliki rute ke sumber daya target Anda.

Kesalahan umum (pembuatan gambar)

Kesalahan Penyebab Solusi
S3_ACCESS_DENIED Peran build tidak memiliki izin untuk mengambil artefak Amazon S3. Tambahkan s3:GetObject izin untuk ember artefak Anda.
S3_NO_SUCH_KEY Kunci artefak tidak ada di bucket. Pastikan jalur Amazon S3 benar.
S3_NO_SUCH_BUCKET Bucket Amazon S3 tidak ada. Periksa nama bucket dan konfirmasikan telah dibuat.
S3_INVALID_OBJECT Artefak di Glacier atau kelas penyimpanan yang tidak dapat diakses langsung. Pindahkan artefak ke kelas penyimpanan Standar.
S3_CROSS_REGION_ACCESS_DENIED Artefak berada di Wilayah yang berbeda dari gambar microVM. Pastikan artefak Anda berada di Wilayah yang sama dengan gambar microVM Anda.
ARCHIVE_DOCKERFILE_NOT_FOUND Arsip zip tidak ada Dockerfile di direktori root. Tambahkan a Dockerfile ke root arsip zip Anda.
ARCHIVE_INVALID File arsip bukan ZIP yang valid atau rusak. Re-create arsip zip dan upload ulang.
CONTAINER_BUILD_FAILED DockerfileInstruksi tidak valid, file hilang, atau kesalahan sintaks. Debug penggunaan Dockerfile docker build lokal Anda.
DISK_STORAGE_FULL MicroVM kehabisan penyimpanan selama pembuatan. Kurangi ukuran artefak atau hubungi dukungan.
INTERNAL_PLATFORM_ERROR Terjadi kesalahan internal. Coba lagi operasi. Jika gigih, hubungi dukungan.

Pemecahan masalah konektor jaringan

Kode kesalahan Penyebab Solusi
DisallowedByVpcEncryptionControl VPC memiliki kebijakan kontrol enkripsi yang mencegah antarmuka jaringan atau lalu lintas yang tidak dienkripsi. Lambda tidak dapat membuat ENI yang memenuhi persyaratan enkripsi. Tambahkan Lambda ke daftar pengecualian kontrol enkripsi VPC. Jika pengecualian tidak memungkinkan, gunakan VPC atau subnet yang tidak memiliki kontrol enkripsi ketat yang diterapkan.
Ec2RequestLimitExceeded Lambda membuat panggilan API EC2 (misalnya,CreateNetworkInterface,DescribeSubnets) untuk mengatur konektivitas. Terlalu banyak panggilan API EC2 bersamaan menyebabkan pelambatan. Coba kembali operasi setelah penundaan singkat. Jika persisten, kurangi operasi konektor jaringan bersamaan atau minta peningkatan batas pelambatan API EC2 melalui Dukungan. AWS
InsufficientRolePermissions Peran operator tidak memiliki izin EC2 yang diperlukan. Pastikan peran IAM memiliki izin jaringan EC2 yang diperlukan.
InternalError Kesalahan tak terduga terjadi dalam layanan Lambda saat memproses permintaan konektor jaringan. Coba lagi operasi. Jika terus berlanjut setelah beberapa kali percobaan ulang, hubungi AWS Dukungan dengan konektor jaringan ARN dan perkiraan stempel waktu.
InvalidSecurityGroup ID grup keamanan tidak ada, telah dihapus, atau bukan milik VPC yang sama dengan subnet yang ditentukan. Verifikasi semua ID grup keamanan ada dan milik VPC yang sama dengan subnet. Gunakan aws ec2 describe-security-groups --group-ids <sg-id> untuk memvalidasi.
InvalidSubnet ID subnet tidak ada, telah dihapus, atau milik VPC yang berbeda dari yang diharapkan. Verifikasi semua ID subnet ada dan milik VPC yang benar. Gunakan aws ec2 describe-subnets --subnet-ids <subnet-id> untuk memvalidasi.
SubnetOutOfIPAddresses Blok CIDR subnet habis — semua IP dialokasikan ke ENI, instance, dan sumber daya lainnya, sehingga Lambda tidak dapat membuat antarmuka jaringan. Kosongkan alamat IP dengan menghapus yang tidak digunakan ENIs/instances, atau gunakan subnet yang berbeda dengan kapasitas yang tersedia. Pertimbangkan subnet yang lebih besar (misalnya, /24 atau lebih besar) untuk konektor jaringan.