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
Batasan berikut berlaku untuk semua fungsi tepi, baik CloudFront Functions maupun Lambda @Edge.
Topik
Akun AWS kepemilikan
Untuk mengaitkan fungsi tepi dengan CloudFront distribusi, fungsi dan distribusi harus dimiliki oleh yang sama Akun AWS.
Menggab CloudFront ungkan 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 Functions dan Lambda @Edge dalam acara penampil (permintaan penampil dan respons pemirsa).
Semua kombinasi fungsi edge lainnya diperbolehkan. Tabel berikut menjelaskan kombinasi yang diizinkan.
|
CloudFront Fungsi |
|||
|
Permintaan pemirsa |
Respons pemirsa |
||
|
Lambda@Edge |
Permintaan pemirsa |
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 ketika 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 terekspos ke fungsi tepi dan fungsi tidak dapat menambahkannya. Header lain hanya baca, yang berarti fungsi dapat membacanya tetapi tidak dapat menambahkan, memodifikasi, atau menghapusnya.
Header yang diizinkan
Header HTTP berikut tidak diekspos ke fungsi tepi, dan fungsi tidak dapat menambahkannya. Jika fungsi Anda menambahkan salah satu header ini, 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 -
CloudFront-Viewer-Cert-PEM -
Client-Cert -
Client-Cert-Chain
Read-only tajuk
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 read-only, permintaan gagal CloudFront validasi dan CloudFront mengembalikan kode status HTTP 502 (Bad Gateway) ke penampil.
Read-only header dalam acara permintaan penampil
Header berikut ini hanya-baca di peristiwa permintaan penampil.
-
CDN-Loop -
Content-Length -
Host -
Transfer-Encoding -
Via
Read-only header dalam acara permintaan asal (hanya Lambda @Edge)
Header berikut hanya-baca dalam peristiwa permintaan asal, yang hanya ada di Lambda@Edge.
-
Accept-Encoding -
CDN-Loop -
Content-Length -
If-Modified-Since -
If-None-Match -
If-Range -
If-Unmodified-Since -
Transfer-Encoding -
Via
Read-only header dalam peristiwa respons asal (hanya Lambda @Edge)
Header berikut hanya-baca dalam peristiwa respon asal, yang hanya ada di Lambda@Edge.
-
Transfer-Encoding -
Via
Read-only header dalam peristiwa respons pemirsa
Header berikut hanya dapat dibaca dalam peristiwa respons penampil untuk Functions dan Lambda CloudFront @Edge.
-
Warning -
Via
Header berikut hanya dapat dibaca dalam peristiwa respons pemirsa 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 pengidentifikasi 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 tepi di UTF-8 kodekan. Fungsi Anda harus menggunakan UTF-8 pengkodean untuk nilai URI, string kueri, dan header yang dikembalikan. Persentase pengkodean kompatibel dengan UTF-8 pengkodean.
Daftar berikut menjelaskan bagaimana CloudFront menangani pengkodean untuk URI, string kueri, dan header:
-
Ketika nilai dalam permintaan di UTF-8 kodekan, CloudFront meneruskan nilai ke fungsi Anda tanpa mengubahnya.
-
Ketika nilai dalam permintaan di ISO-8859-1 kodekan
, CloudFront mengubah nilai menjadi UTF-8 pengkodean sebelum meneruskannya ke fungsi Anda. -
Ketika nilai dalam permintaan dikodekan menggunakan beberapa pengkodean karakter lain, CloudFront asumsikan bahwa mereka di ISO-8859-1 kodekan 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 diter CloudFront uskan ke asal Anda bergantung pada apakah fungsi mengubah nilai:
-
Jika fungsi tidak mengubah URI, string kueri, atau header, CloudFront meneruskan nilai yang diterima dalam permintaan ke asal Anda.
-
Jika fungsi mengubah URI, string kueri, atau header, meneruskan nilai CloudFront yang di UTF-8 kodekan.
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 sumber CloudFront daya.