Pembatasan Lambda@Edge - Amazon CloudFront

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

Pembatasan Lambda@Edge

Pembatasan berikut hanya berlaku untuk Lambda@Edge.

Untuk informasi tentang kuota, lihatKuotas di Lambda@Edge.

DNSresolusi

CloudFront melakukan DNS resolusi pada nama domain asal sebelum menjalankan fungsi permintaan asal Anda Lambda @Edge. Jika DNS layanan untuk domain Anda mengalami masalah dan tidak CloudFront dapat menyelesaikan nama domain untuk mendapatkan alamat IP, fungsi Lambda @Edge Anda tidak akan dipanggil. CloudFrontakan mengembalikan kode status HTTP 502 (Bad Gateway) ke klien. Untuk informasi selengkapnya, lihat DNSkesalahan (NonS3OriginDnsError).

Untuk informasi selengkapnya tentang mengelola DNS failover, lihat Mengonfigurasi DNS failover di Panduan Pengembang Amazon Route 53.

HTTPkode status

Fungsi Lambda @Edge untuk peristiwa respons penampil tidak dapat mengubah kode HTTP status respons, terlepas dari apakah respons berasal dari asal atau cache. CloudFront

Versi fungsi Lambda

Anda harus menggunakan versi bernomor dari fungsi Lambda, bukan $LATEST atau alias.

Wilayah Lambda

Fungsi Lambda harus di Wilayah US East (N. Virginia).

Izin peran Lambda

Peran IAM eksekusi yang terkait dengan fungsi Lambda harus memungkinkan prinsipal layanan lambda.amazonaws.com dan edgelambda.amazonaws.com untuk mengambil peran. Untuk informasi selengkapnya, lihat Siapkan IAM izin dan peran untuk Lambda @Edge.

Fitur Lambda

Fitur Lambda berikut tidak didukung oleh Lambda@Edge:

Waktu aktif yang didukung

Lambda@Edge mendukung fungsi Lambda dengan waktu pengoperasian berikut:

Node.js

Python

  • Node.js 20

  • Node.js 18

  • Node.js 16¹

  • Node.js 14²

  • Node.js 12²

  • Node.js 10²

  • Node.js 8²

  • Node.js 6²

  • Python 3.12

  • Python 3.11

  • Python 3.10

  • Python 3.9

  • Python 3.8

  • Python 3.7

¹Versi Node.js ini telah mencapai akhir masa pakai, dan akan segera dihentikan oleh. AWS Lambda

²Versi Node.js ini telah mencapai akhir masa pakai, dan sepenuhnya tidak digunakan lagi oleh. AWS Lambda

Anda tidak dapat membuat atau memperbarui fungsi dengan versi Node.js yang tidak digunakan lagi. Anda hanya dapat mengaitkan fungsi yang ada dengan versi ini dengan CloudFront distribusi. Fungsi dengan versi ini yang terkait dengan distribusi akan terus berjalan. Namun, kami menyarankan Anda memindahkan fungsi Anda ke versi Node.js yang lebih baru. Untuk informasi selengkapnya, lihat kebijakan penghentian waktu proses di Panduan AWS Lambda Pengembang dan jadwal rilis Node.js pada. GitHub

Tip

Sebagai praktik terbaik, gunakan versi terbaru dari runtime yang disediakan untuk peningkatan kinerja dan fitur baru.

CloudFrontheader

Fungsi Lambda @Edge dapat membaca, mengedit, menghapus, atau menambahkan CloudFront header apa pun yang tercantum. Tambahkan header CloudFront permintaan

Catatan
  • Jika Anda CloudFront ingin menambahkan header ini, Anda harus mengonfigurasi CloudFront untuk menambahkannya dengan menggunakan kebijakan cache atau kebijakan permintaan asal.

  • CloudFront menambahkan header setelah peristiwa permintaan penampil, yang berarti header tidak tersedia untuk fungsi Lambda @Edge dalam permintaan penampil. Header hanya tersedia untuk fungsi Lambda @Edge dalam permintaan asal dan respons asal.

  • Jika permintaan penampil menyertakan header yang memiliki nama ini, dan Anda mengonfigurasi CloudFront untuk menambahkan header ini menggunakan kebijakan cache atau kebijakan permintaan asal, maka CloudFront timpa nilai header yang ada dalam permintaan penampil. Fungsi yang menghadap pemirsa melihat nilai header dari permintaan penampil, sementara fungsi yang menghadap ke asal melihat nilai header yang ditambahkan. CloudFront

  • Jika fungsi permintaan penampil menambahkan CloudFront-Viewer-Country header, itu gagal validasi dan CloudFront mengembalikan kode HTTP status 502 (Bad Gateway) ke penampil.

Pembatasan pada isi permintaan dengan opsi sertakan isi

Saat Anda memilih opsi Sertakan Tubuh untuk mengekspos badan permintaan ke fungsi Lambda @Edge Anda, informasi dan batas ukuran berikut berlaku untuk bagian tubuh yang diekspos atau diganti.

  • CloudFront selalu base64 mengkodekan badan permintaan sebelum memaparkannya ke Lambda @Edge.

  • Jika badan permintaan besar, CloudFront potong sebelum memaparkannya ke Lambda @Edge, sebagai berikut:

    • Untuk peristiwa permintaan penampil, isi dipotong pada 40 KB.

    • Untuk peristiwa permintaan asal, isi dipotong pada 1 MB.

  • Jika Anda mengakses isi permintaan sebagai hanya-baca, CloudFront kirimkan badan permintaan asli lengkap ke asal.

  • Jika fungsi Lambda @Edge Anda menggantikan badan permintaan, batas ukuran berikut berlaku untuk badan yang dikembalikan fungsi:

    • Jika fungsi Lambda@Edge mengembalikan isi sebagai teks biasa:

      • Untuk acara permintaan pemirsa, batas isi adalah 40 KB.

      • Untuk acara permintaan asal, batas isi adalah 1 MB.

    • Jika fungsi Lambda@Edge mengembalikan isi sebagai terks berenkode base64:

      • Untuk acara permintaan pemirsa, batas isi adalah 53,2 KB.

      • Untuk acara permintaan asal, batas isi adalah 1,33 MB.

catatan

Jika fungsi Lambda @Edge Anda mengembalikan badan yang melebihi batas ini, permintaan Anda akan gagal dengan kode status HTTP 502 (). Kesalahan validasi Lambda Kami menyarankan Anda memperbarui fungsi Lambda @Edge Anda sehingga tubuh tidak melebihi batas ini.

Batas waktu respons dan batas waktu keep-alive (hanya asal khusus)

Jika Anda menggunakan fungsi Lambda @Edge untuk mengatur batas waktu respons atau batas waktu keep-alive untuk asal distribusi, verifikasi bahwa Anda menentukan nilai yang dapat didukung oleh asal Anda. Untuk informasi selengkapnya, lihat Tanggapan dan kuota batas waktu tetap hidup.