Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pembatasan pada semua fungsi edge
Pembatasan berikut berlaku untuk semua fungsi edge, baik CloudFront Fungsi maupun Lambda @Edge.
Topik
Kepemilikan Akun AWS
Untuk mengaitkan fungsi tepi dengan CloudFront distribusi, fungsi dan distribusi harus dimiliki oleh yang sama Akun AWS.
Menggabungkan CloudFront Fungsi dengan Lambda @Edge
Untuk perilaku cache tertentu, pembatasan berikut berlaku:
-
Setiap jenis kejadian (permintaan penampil, permintaan asal, respons asal, dan respons penampil) hanya dapat memiliki satu asosiasi fungsi edge.
-
Anda tidak dapat menggabungkan CloudFront Fungsi dan Lambda @Edge dalam acara penampil (permintaan penampil dan respons penampil).
Semua kombinasi fungsi edge lainnya diperbolehkan. Tabel berikut menjelaskan kombinasi yang diizinkan.
CloudFront Fungsi |
|||
Permintaan penampil |
Respons pemirsa |
||
Lambda@Edge |
Permintaan penampil |
Tidak diizinkan |
Tidak diizinkan |
Permintaan asal |
Diizinkan |
Diizinkan |
|
Respon asal |
Diizinkan |
Diizinkan |
|
Respons pemirsa |
Tidak diizinkan |
Tidak diizinkan |
Kode status HTTP
CloudFront tidak memanggil fungsi tepi untuk peristiwa respons penampil saat asal mengembalikan kode status HTTP 400 atau lebih tinggi.
Fungsi Lambda@Edge untuk peristiwa respons asal dipanggil untuk semuarespons asal, termasuk saat asal mengembalikan kode status HTTP 400 atau lebih tinggi. Untuk informasi selengkapnya, lihat Perbarui tanggapan HTTP di pemicu respons asal.
Header HTTP
Header HTTP tertentu tidak diizinkan, yang berarti mereka tidak terkena fungsi tepi dan fungsi tidak dapat menambahkannya. Header lainnya hanya baca, yang berarti fungsi dapat membacanya tetapi tidak dapat menambahkan, memodifikasi, atau menghapusnya.
Header yang diizinkan
Header HTTP berikut tidak terkena fungsi edge, dan fungsi tidak dapat menambahkannya. Jika fungsi Anda menambahkan salah satu header ini, itu gagal CloudFront validasi dan CloudFront mengembalikan kode status HTTP 502 (Bad Gateway) ke penampil.
-
Connection
-
Expect
-
Keep-Alive
-
Proxy-Authenticate
-
Proxy-Authorization
-
Proxy-Connection
-
Trailer
-
Upgrade
-
X-Accel-Buffering
-
X-Accel-Charset
-
X-Accel-Limit-Rate
-
X-Accel-Redirect
-
X-Amz-Cf-*
-
X-Amzn-Auth
-
X-Amzn-Cf-Billing
-
X-Amzn-Cf-Id
-
X-Amzn-Cf-Xff
-
X-Amzn-Errortype
-
X-Amzn-Fle-Profile
-
X-Amzn-Header-Count
-
X-Amzn-Header-Order
-
X-Amzn-Lambda-Integration-Tag
-
X-Amzn-RequestId
-
X-Cache
-
X-Edge-*
-
X-Forwarded-Proto
-
X-Real-IP
Header hanya-baca
Header berikut ini hanya untuk dibaca. Fungsi Anda dapat membacanya dan menggunakannya sebagai input ke logika fungsi, tetapi tidak dapat mengubah nilainya. Jika fungsi Anda menambahkan atau mengedit header hanya-baca, permintaan gagal CloudFront validasi dan CloudFront mengembalikan kode status HTTP 502 (Bad Gateway) ke penampil.
Header hanya-baca dalam peristiwa permintaan penampil
Header berikut ini hanya-baca di peristiwa permintaan penampil.
-
Content-Length
-
Host
-
Transfer-Encoding
-
Via
Header hanya-baca dalam peristiwa permintaan asal (hanya Lambda@Edge)
Header berikut hanya-baca dalam peristiwa permintaan asal, yang hanya ada di Lambda@Edge.
-
Accept-Encoding
-
Content-Length
-
If-Modified-Since
-
If-None-Match
-
If-Range
-
If-Unmodified-Since
-
Transfer-Encoding
-
Via
Header hanya-baca dalam peristiwa respons asal (hanya Lambda@Edge)
Header berikut hanya-baca dalam peristiwa respon asal, yang hanya ada di Lambda@Edge.
-
Transfer-Encoding
-
Via
Header hanya-baca dalam peristiwa respons penampil
Header berikut hanya-baca dalam peristiwa respons penampil untuk Fungsi CloudFront dan Lambda @Edge.
-
Warning
-
Via
Header berikut hanya-baca dalam peristiwa respons penampil untuk Lambda @Edge.
-
Content-Length
-
Content-Encoding
-
Transfer-Encoding
String pertanyaan
Pembatasan berikut berlaku untuk fungsi yang membaca, memperbarui, atau membuat string kueri dalam permintaan URI.
-
(Lambda@Edge saja) Untuk mengakses string kueri dalam permintaan asal atau fungsi respons asal, kebijakan cache atau kebijakan permintaan asal harus disetel ke semua untuk string kueri.
-
Sebuah fungsi dapat membuat atau memperbarui string kueri untuk permintaan penampil dan peristiwa permintaan asal (peristiwa permintaan asal hanya ada di Lambda@Edge).
-
Sebuah fungsi dapat membaca string kueri, tetapi tidak dapat membuat atau memperbarui satu, untuk respons asal dan peristiwa respons penampil (peristiwa respons asal hanya ada di Lambda@Edge).
-
Jika fungsi membuat atau memperbarui string kueri, pembatasan berikut berlaku:
-
String kueri tidak dapat menyertakan spasi, karakter kontrol, atau pengenal fragmen ()
#
. -
Ukuran total URI, termasuk string kueri, harus kurang dari 8.192 karakter.
-
Kami sarankan Anda menggunakan persen pengkodean untuk URI dan string kueri. Untuk informasi selengkapnya, lihat URI, string kueri, dan pengkodean header.
-
URI
Jika sebuah fungsi mengubah URI untuk permintaan, hal itu tidak mengubah perilaku cache untuk permintaan tersebut atau asal permintaan tersebut yang diteruskan.
Ukuran total URI, termasuk string kueri, harus kurang dari 8.192 karakter.
URI, string kueri, dan pengkodean header
Nilai untuk URI, string kueri, dan header yang diteruskan ke fungsi edge dikodekan UTF-8. Fungsi Anda harus menggunakan pengkodean UTF-8 untuk URI, string kueri, dan nilai header yang dikembalikan. Pengkodean persen kompatibel dengan pengkodean UTF-8.
Daftar berikut menjelaskan cara CloudFront menangani pengkodean untuk URI, string kueri, dan header:
-
Ketika nilai dalam permintaan dikodekan UTF-8, teruskan nilai CloudFront ke fungsi Anda tanpa mengubahnya.
-
Ketika nilai dalam permintaan dikodekan ISO-8859-1, CloudFront konversi nilai ke UTF-8 encoding
sebelum meneruskannya ke fungsi Anda. -
Ketika nilai dalam permintaan dikodekan menggunakan beberapa pengkodean karakter lain, CloudFront asumsikan bahwa mereka dikodekan ISO-8859-1 dan mencoba mengonversi dari ISO-8859-1 ke UTF-8.
penting
Karakter yang dikonversi mungkin merupakan interpretasi yang tidak akurat dari nilai-nilai dalam permintaan asli. Hal ini dapat menyebabkan fungsi atau asal Anda memberi hasil yang tidak diinginkan.
Nilai untuk URI, string kueri, dan header yang CloudFront diteruskan ke asal Anda bergantung pada apakah suatu fungsi mengubah nilai:
-
Jika fungsi tidak mengubah URI, string kueri, atau header, CloudFront teruskan nilai yang diterimanya dalam permintaan ke asal Anda.
-
Jika fungsi mengubah URI, string kueri, atau header, CloudFront teruskan nilai yang dikodekan UTF-8.
Streaming Microsoft yang Lancar
Anda tidak dapat menggunakan fungsi edge dengan CloudFront distribusi yang Anda gunakan untuk streaming file media yang telah Anda transkode ke dalam format Microsoft Smooth Streaming.
Penandaan
Anda tidak dapat menambahkan tag ke fungsi tepi. Untuk informasi selengkapnya tentang penandaan CloudFront, lihatTandai distribusi.