View a markdown version of this page

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.

Resolusi DNS

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

Jika logika fungsi Anda memodifikasi nama domain asal, CloudFront akan melakukan resolusi DNS lain pada nama domain yang diperbarui setelah fungsi selesai dijalankan.

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

Kode status HTTP

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

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 eksekusi IAM yang terkait dengan fungsi Lambda harus mengizinkan layanan utama lambda.amazonaws.com dan edgelambda.amazonaws.com untuk menjalankan peran tersebut. Untuk informasi selengkapnya, lihat Siapkan izin dan peran IAM untuk Lambda @Edge.

Fitur Lambda

Fitur Lambda berikut tidak didukung oleh Lambda@Edge:

Waktu aktif yang didukung

Lambda @Edge mendukung versi terbaru Node.js dan runtime Python. Untuk daftar versi yang didukung dan tanggal penghentiannya di masa mendatang, lihat Runtime yang didukung di Panduan Pengembang. AWS Lambda

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

  • Anda tidak dapat membuat atau memperbarui fungsi dengan versi usang dari. Node.js 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 yang lebih baru Node.js. Untuk informasi selengkapnya, lihat Kebijakan penghentian Runtime di Panduan Peng AWS Lambda embang dan jadwal Node.js rilis pada. GitHub

CloudFront tajuk

Fungsi Lambda @Edge dapat membaca, mengedit, menghapus, atau menambahkan salah satu header yang tercantum CloudFront di. 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-nama ini, dan Anda mengonfigurasi CloudFront untuk menambahkan header ini menggunakan kebijakan cache atau kebijakan permintaan asal, maka CloudFront ganti nilai header yang ada dalam permintaan penampil. Viewer-facing fungsi melihat nilai header dari permintaan penampil, sedangkan fungsi yang menghadap ke asal melihat nilai header yang CloudFront ditambahkan.

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

Pembatasan pada isi permintaan dengan opsi sertakan isi

Bila Anda memilih opsi Sertakan Tubuh untuk mengekspos isi permintaan ke fungsi Lambda @Edge Anda, informasi berikut dan batas ukuran berlaku untuk bagian-bagian tubuh yang terbuka atau diganti.

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

  • Jika isi permintaan besar, potong sebelum CloudFront mengeksposnya 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 badan permintaan sebagai baca-saja, CloudFront mengirimkan isi permintaan asli lengkap ke sumber.

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

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

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

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

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

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

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

catatan

Jika fungsi Lambda @Edge 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 agar tubuh tidak melebihi batas ini.

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

Jika Anda menggunakan fungsi Lambda @Edge untuk menyetel batas waktu respons atau batas waktu keep-alive untuk sumber distribusi Anda, verifikasi bahwa Anda menentukan nilai yang dapat didukung sumber Anda. Lihat informasi yang lebih lengkap di Kuota batas waktu tanggapan dan keep-hidup-hidup.