Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Memecahkan masalah dengan integrasi Lambda API HTTP

Mode fokus
Memecahkan masalah dengan integrasi Lambda API HTTP - Amazon API Gateway

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

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

Berikut ini memberikan saran pemecahan masalah untuk kesalahan dan masalah yang mungkin Anda temui saat menggunakan AWS Lambda integrasi dengan HTTP. APIs

Masalah: API saya dengan integrasi Lambda kembali {"message":"Internal Server Error"}

Untuk memecahkan masalah kesalahan server internal, tambahkan variabel $context.integrationErrorMessage logging ke format log Anda, dan lihat log HTTP API Anda. Untuk mencapai ini, lakukan hal berikut:

Untuk membuat grup log dengan menggunakan AWS Management Console
  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Pilih Grup log.

  3. Pilih Buat grup log.

  4. Masukkan nama grup log, lalu pilih Buat.

  5. Perhatikan Nama Sumber Daya Amazon (ARN) untuk grup log Anda. Format ARN adalah arn:aws:logs: ::log-group:. region account-id log-group-name Anda memerlukan grup log ARN untuk mengaktifkan pencatatan akses untuk HTTP API Anda.

Untuk menambahkan variabel $context.integrationErrorMessage logging
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih HTTP API Anda.

  3. Di bawah Monitor, pilih Logging.

  4. Pilih tahap API Anda.

  5. Pilih Edit, lalu aktifkan pencatatan akses.

  6. Untuk tujuan Log, masukkan ARN dari grup log yang Anda buat pada langkah sebelumnya.

  7. Untuk format Log, pilih CLF. API Gateway membuat contoh format log.

  8. Tambahkan $context.integrationErrorMessage ke akhir format log.

  9. Pilih Simpan.

Untuk melihat log API Anda
  1. Hasilkan log. Gunakan browser atau curl untuk menjalankan API Anda.

    $curl https://api-id.execute-api.us-west-2.amazonaws.com/route
  2. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  3. Pilih HTTP API Anda.

  4. Di bawah Monitor, pilih Logging.

  5. Pilih tahap API yang Anda aktifkan logging.

  6. Pilih Lihat log masuk CloudWatch.

  7. Pilih aliran log terbaru untuk melihat log HTTP API Anda.

  8. Entri log Anda akan terlihat mirip dengan yang berikut ini:

    CloudWatch Entri log log yang menunjukkan pesan kesalahan integrasi dari Lambda.

Karena kami menambahkan $context.integrationErrorMessage ke format log, kami melihat pesan kesalahan di log kami yang merangkum masalah.

Log Anda mungkin menyertakan pesan kesalahan berbeda yang menunjukkan bahwa ada masalah dengan kode fungsi Lambda Anda. Dalam hal ini, periksa kode fungsi Lambda Anda, dan verifikasi bahwa fungsi Lambda Anda mengembalikan respons dalam format yang diperlukan. Jika log Anda tidak menyertakan pesan kesalahan, tambahkan $context.error.message dan $context.error.responseType ke format log Anda untuk informasi selengkapnya guna membantu memecahkan masalah.

Dalam kasus ini, log menunjukkan bahwa API Gateway tidak memiliki izin yang diperlukan untuk menjalankan fungsi Lambda.

Saat Anda membuat integrasi Lambda di konsol API Gateway, API Gateway secara otomatis mengonfigurasi izin untuk menjalankan fungsi Lambda. Saat membuat integrasi Lambda dengan menggunakan AWS CLI,, atau SDK AWS CloudFormation, Anda harus memberikan izin kepada API Gateway untuk menjalankan fungsi tersebut. Perintah izin tambahan berikut memberikan izin untuk rute API HTTP yang berbeda untuk menjalankan fungsi Lambda.

contoh Contoh - Untuk $default tahap dan $default rute API HTTP
aws lambda add-permission \ --function-name my-function \ --statement-id apigateway-invoke-permissions \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn "arn:aws:execute-api:us-west-2:123456789012:api-id/\$default/\$default"
contoh Contoh - Untuk prod tahap dan test rute API HTTP
aws lambda add-permission \ --function-name my-function \ --statement-id apigateway-invoke-permissions \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn "arn:aws:execute-api:us-west-2:123456789012:api-id/prod/*/test"

Konfirmasi kebijakan fungsi di tab Izin di konsol Lambda.

Coba jalankan API Anda lagi. Anda akan melihat respons fungsi Lambda Anda.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.