Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Metode pembantu untuk modifikasi asal
Bagian ini berlaku jika Anda secara dinamis memperbarui atau mengubah asal yang digunakan pada permintaan di dalam kode CloudFront Functions Anda. Anda dapat memperbarui asal pada permintaan penampil CloudFront Fungsi saja. CloudFront Functions memiliki modul yang menyediakan metode pembantu untuk memperbarui atau mengubah asal secara dinamis.
Untuk menggunakan modul ini, buat CloudFront fungsi menggunakan JavaScript runtime 2.0 dan sertakan pernyataan berikut di baris pertama kode fungsi:
import cf from 'cloudfront';
Untuk informasi selengkapnya, lihat JavaScript fitur runtime 2.0 untuk Fungsi CloudFront.
catatan
Halaman Test API dan Test console tidak menguji apakah modifikasi asal telah terjadi. Namun, pengujian memastikan bahwa kode fungsi dijalankan tanpa kesalahan.
Pilih antara CloudFront Fungsi dan Lambda @Edge
Anda dapat memperbarui asal Anda dengan menggunakan CloudFront Functions atau Lambda @Edge.
Saat menggunakan CloudFront Functions untuk memperbarui asal, Anda menggunakan pemicu peristiwa permintaan penampil, yang berarti logika ini akan berjalan pada setiap permintaan saat fungsi ini digunakan. Saat menggunakan Lambda @Edge, kemampuan pembaruan asal ada pada pemicu peristiwa permintaan asal, yang berarti logika ini hanya berjalan pada cache miss.
Pilihan Anda sangat bergantung pada beban kerja Anda dan penggunaan Functions dan Lambda @Edge yang ada pada distribusi Anda. CloudFront Pertimbangan berikut dapat membantu Anda memutuskan apakah akan menggunakan CloudFront Functions atau Lambda @Edge untuk memperbarui asal Anda.
CloudFront Fungsi paling berguna dalam situasi berikut:
-
Ketika permintaan Anda dinamis (artinya tidak dapat di-cache) dan akan selalu pergi ke asal. CloudFront Fungsi memberikan kinerja yang lebih baik dan biaya keseluruhan yang lebih rendah.
-
Ketika Anda sudah memiliki CloudFront fungsi permintaan penampil yang ada yang akan berjalan pada setiap permintaan, Anda dapat menambahkan logika pembaruan asal ke fungsi yang ada.
Untuk menggunakan CloudFront Functions untuk memperbarui asal, lihat metode pembantu dalam topik berikut.
Lambda @Edge paling berguna dalam situasi berikut:
-
Ketika Anda memiliki konten yang sangat dapat di-cache, Lambda @Edge bisa lebih hemat biaya karena hanya berjalan pada cache yang hilang, sementara CloudFront Functions berjalan pada setiap permintaan.
-
Ketika Anda sudah memiliki fungsi permintaan asal Lambda @Edge, Anda dapat menambahkan logika pembaruan asal ke fungsi yang ada.
-
Bila logika pembaruan asal Anda memerlukan pengambilan data dari sumber data pihak ketiga, seperti Amazon DynamoDB atau Amazon S3.
Untuk informasi lebih lanjut tentang Lambda @Edge, lihatSesuaikan di tepi dengan Lambda @Edge.
update RequestOrigin () metode
Gunakan updateRequestOrigin() metode untuk memperbarui pengaturan asal untuk permintaan. Anda dapat menggunakan metode ini untuk memperbarui properti asal yang ada untuk asal yang sudah ditentukan dalam distribusi Anda, atau untuk menentukan asal baru untuk permintaan. Untuk melakukannya, tentukan properti yang ingin Anda ubah.
penting
Pengaturan apa pun yang tidak Anda tentukan di updateRequestOrigin() dalamnya akan mewarisi pengaturan yang sama dari konfigurasi asal yang ada.
Asal yang ditetapkan oleh updateRequestOrigin() metode dapat berupa titik akhir HTTP apa pun dan tidak perlu menjadi asal yang ada dalam CloudFront distribusi Anda.
Catatan
-
Jika Anda memperbarui asal yang merupakan bagian dari grup asal, hanya asal utama grup asal yang diperbarui. Asal sekunder tetap tidak berubah. Setiap kode respons dari asal yang dimodifikasi yang cocok dengan kriteria failover akan memicu failover ke asal sekunder.
-
Jika Anda mengubah tipe asal dan mengaktifkan OAC, pastikan jenis asal
originAccessControlConfigcocok dengan tipe asal baru. -
Anda tidak dapat menggunakan
updateRequestOrigin()metode ini untuk memperbarui asal Batasi akses dengan asal VPC VPC. Permintaan akan gagal.
Permintaan
updateRequestOrigin({origin properties})
origin propertiesDapat berisi yang berikut:
- DomainName (opsional)
-
Nama domain asal. Jika ini tidak disediakan, nama domain dari asal yang ditetapkan digunakan sebagai gantinya.
- Untuk asal kustom
-
Tentukan nama domain DNS, seperti
www.example.com. Nama domain tidak dapat menyertakan titik dua (:) dan tidak dapat berupa alamat IP. Nama domain dapat terdiri dari hingga 253 karakter. - Untuk asal S3
-
Tentukan nama domain DNS dari bucket Amazon S3, seperti
amzn-s3-demo-bucket.s3.eu-west-1.amazonaws.com. Nama bisa sampai 128 karakter dan harus berupa huruf kecil.
- HostHeader (opsional, untuk asal kustom non-S3)
-
Header host untuk digunakan saat membuat permintaan ke asal. Jika ini tidak disediakan, nilai dari parameter domainName digunakan. Jika tidak ada header host atau parameter nama domain yang disediakan, nama domain dari asal yang ditetapkan akan digunakan atau header host dari permintaan masuk jika kebijakan forward to origin (FTO) menyertakan host. Header host tidak dapat menyertakan titik dua (
:) dan tidak dapat berupa alamat IP. Header host bisa mencapai 253 karakter. - OriginPath (opsional)
-
Jalur direktori di tempat asal permintaan harus menemukan konten. Jalur harus dimulai dengan garis miring ke depan (/) tetapi tidak boleh diakhiri dengan satu. Misalnya, seharusnya tidak berakhir dengan
example-path/. Jika ini tidak disediakan, maka jalur asal dari asal yang ditetapkan digunakan.- Untuk asal khusus
-
Jalur harus dikodekan URL dan memiliki panjang maksimum 255 karakter.
- CustomHeaders (opsional)
-
Anda dapat menyertakan judul kustom dengan permintaan dengan menyebutkan nama header dan pasangan nilai untuk masing-masing header khusus. Formatnya berbeda dari header permintaan dan respons dalam struktur acara. Gunakan sintaks pasangan kunci-nilai berikut:
{"key1": "value1", "key2": "value2", ...}Anda tidak dapat menambahkan header yang tidak diizinkan, dan header dengan nama yang sama juga tidak dapat hadir dalam permintaan masuk.
headersNama header harus huruf kecil dalam kode fungsi Anda. Ketika CloudFront Functions mengubah objek peristiwa kembali menjadi permintaan HTTP, huruf pertama dari setiap kata dalam nama header dikapitalisasi, dan kata-kata dipisahkan oleh tanda hubung.Misalnya, jika kode fungsi Anda menambahkan header bernama
example-header-nameCloudFront , mengubahnyaExample-Header-Namemenjadi permintaan HTTP. Untuk informasi selengkapnya, lihat Header khusus yang tidak CloudFront dapat ditambahkan ke permintaan asal dan Pembatasan pada fungsi edge.Jika ini tidak disediakan, maka header khusus apa pun dari asal yang ditetapkan digunakan.
- ConnectionUpments (opsional)
-
Jumlah kali yang CloudFront mencoba untuk terhubung ke asal. Minimum adalah 1 dan maksimum adalah 3. Jika ini tidak disediakan, upaya koneksi dari asal yang ditetapkan digunakan.
- OriginShield (opsional)
-
Ini mengaktifkan atau memperbarui CloudFront Origin Shield. Menggunakan Shield Asal dapat membantu mengurangi beban pada asal Anda. Untuk informasi selengkapnya, lihat Gunakan Amazon CloudFront Origin Shield. Jika ini tidak disediakan, pengaturan Origin Shield dari asal yang ditetapkan akan digunakan.
- diaktifkan (wajib)
-
Ekspresi Boolean untuk mengaktifkan atau menonaktifkan Origin Shield. Menerima
falsenilaitrueatau. - wilayah (diperlukan saat diaktifkan)
-
Wilayah AWS Untuk Perisai Asal. Tentukan Wilayah AWS yang memiliki latensi terendah pada asal Anda. Gunakan kode Wilayah, bukan nama Wilayah. Misalnya, gunakan
us-east-2untuk menentukan Wilayah AS Timur (Ohio).Saat Anda mengaktifkan CloudFront Origin Shield, Anda harus menentukan Wilayah AWS untuk itu. Untuk daftar yang tersedia Wilayah AWS dan bantuan memilih Wilayah terbaik untuk asal Anda, lihatPilih AWS Wilayah untuk Origin Shield.
- asal AccessControlConfig (opsional)
-
Pengidentifikasi unik dari kontrol akses asal (OAC) untuk asal ini. Ini hanya digunakan jika asal mendukung CloudFront OAC, seperti Amazon S3, URL fungsi Lambda MediaStore, dan MediaPackage V2. Jika ini tidak disediakan, maka pengaturan OAC dari asal yang ditetapkan digunakan.
Ini tidak mendukung identitas akses asal warisan (OAI). Untuk informasi selengkapnya, lihat Membatasi akses ke AWS asal.
- diaktifkan (wajib)
-
Ekspresi Boolean untuk mengaktifkan atau menonaktifkan OAC. Menerima
falsenilaitrueatau. - SigningBehavior (diperlukan saat diaktifkan)
-
Menentukan CloudFront tanda permintaan mana (menambahkan informasi otentikasi ke). Tentukan
alwaysuntuk kasus penggunaan yang paling umum. Untuk informasi selengkapnya, lihat Pengaturan lanjutan untuk kontrol akses asal.Bidang ini dapat memiliki salah satu nilai berikut:
-
always— CloudFront menandatangani semua permintaan asal, menggantiAuthorizationheader dari permintaan penampil jika ada. -
never— CloudFront tidak menandatangani permintaan asal apa pun. Nilai ini mematikan kontrol akses asal untuk asal. -
no-override— Jika permintaan penampil tidak berisiAuthorizationheader, maka tand CloudFront atangani permintaan asal. Jika permintaan penampil berisiAuthorizationheader, maka CloudFront tidak menandatangani permintaan asal dan sebaliknya meneruskanAuthorizationheader dari permintaan penampil.Awas
Untuk meneruskan
Authorizationheader dari permintaan penampil, Anda harus menambahkannya ke kebijakan permintaan asal untuk semua perilaku cache yang menggunakan asal yang terkait dengan kontrol akses asal ini. Untuk informasi selengkapnya, lihat Kontrol permintaan asal dengan kebijakan.
-
- SigningProtocol (diperlukan saat diaktifkan)
-
Protokol penandatanganan OAC, yang menentukan bagaimana men CloudFront andatangani (mengautentikasi) permintaan. Satu-satunya nilai yang valid adalah
sigv4. - OriginType (diperlukan saat diaktifkan)
-
Jenis asal untuk OAC ini. Nilai yang valid termasuk
s3,mediapackagev2,mediastore, danlambda.
- batas waktu (opsional)
-
Batas waktu yang dapat Anda tentukan untuk berapa lama CloudFront harus mencoba menunggu sumber merespons atau mengirim data. Jika ini tidak disediakan, maka pengaturan batas waktu dari asal yang ditetapkan digunakan.
catatan
Kecuali ditentukan, batas waktu ini mendukung asal khusus dan asal Amazon S3.
- ReadTimeout (opsional)
-
Ini
readTimeoutberlaku untuk kedua nilai berikut:-
Berapa lama (dalam detik) CloudFront menunggu tanggapan setelah meneruskan permintaan ke asal.
-
Berapa lama (dalam detik CloudFront ) menunggu setelah menerima paket respons dari asal dan sebelum menerima paket berikutnya.
Waktu tunggu minimum adalah 1 detik dan maksimum adalah 120 detik. Untuk informasi selengkapnya, lihat Waktu tunggu respons.
-
- respon CompletionTimeout (opsional)
-
Waktu (dalam detik) permintaan dari CloudFront asal dapat tetap terbuka dan menunggu tanggapan. Jika respons lengkap tidak diterima dari sumber pada saat ini, CloudFront akhiri koneksi.
Nilai untuk
responseCompletionTimeoutharus sama dengan atau lebih besar dari nilai untukreadTimeout. Untuk informasi selengkapnya, lihat Waktu tunggu penyelesaian respons. - simpan AliveTimeout (opsional)
-
Batas waktu ini hanya berlaku untuk asal khusus, bukan asal Amazon S3. (Konfigurasi asal S3 akan mengabaikan pengaturan ini.)
Men
keepAliveTimeoutentukan berapa lama CloudFront harus mencoba mempertahankan koneksi ke asal setelah menerima paket terakhir dari respons. Waktu tunggu minimum adalah 1 detik dan maksimum adalah 120 detik. Untuk informasi selengkapnya, lihat Keep-alive batas waktu (hanya asal khusus dan VPC). - ConnectionTimeout (opsional)
-
Jumlah detik yang CloudFront menunggu saat mencoba membuat koneksi ke asal. Batas waktu minimum adalah 1 detik dan maksimum adalah 10 detik. Untuk informasi selengkapnya, lihat Batas waktu koneksi.
- kustom OriginConfig (opsional)
-
Gunakan
customOriginConfiguntuk menentukan setelan koneksi untuk asal yang bukan bucket Amazon S3. Ada satu pengecualian: Anda dapat menentukan pengaturan ini jika bucket S3 dikonfigurasi dengan hosting situs web statis. (Jenis konfigurasi bucket S3 lainnya akan mengabaikan pengaturan ini.) Jika tidakcustomOriginConfigdisediakan, maka pengaturan dari asal yang ditetapkan digunakan.- port (wajib)
-
Port HTTP yang CloudFront digunakan untuk terhubung ke asal. Tentukan port HTTP yang didengar oleh asal.
- protokol (wajib)
-
Menentukan protokol (HTTP atau HTTPS) CloudFront yang digunakan untuk terhubung ke asal. Nilai yang valid adalah sebagai berikut:
-
http— CloudFront selalu menggunakan HTTP untuk terhubung ke asal -
https— CloudFront selalu menggunakan HTTPS untuk terhubung ke asal
-
- Protokol SSL (wajib)
-
Daftar yang menentukan SSL/TLS protokol minimum yang digunakan CloudFront saat menghubungkan ke asal Anda melalui HTTPS. Nilai yang valid termasuk
SSLv3,TLSv1,TLSv1.1, danTLSv1.2. Untuk informasi selengkapnya, lihat Protokol SSL asal minimum. - ip AddressType (opsional)
-
Menentukan jenis alamat IP CloudFront yang digunakan untuk terhubung ke asal. Nilai yang valid termasuk
ipv4,ipv6, dandualstack. PerubahanipAddressTypehanya didukung ketikadomainNameproperti juga sedang diubah.
- sni (opsional, untuk asal khusus non-S3)
-
Server Name Indication (SNI) adalah ekstensi protokol Transport Layer Security (TLS) di mana klien menunjukkan nama host mana yang mencoba untuk terhubung pada awal proses jabat tangan TLS. Nilai ini harus cocok dengan nama umum pada sertifikat TLS di server asal Anda. Jika tidak, server asal Anda mungkin menimbulkan kesalahan.
Jika ini tidak disediakan, nilai dari
hostHeaderparameter digunakan. Jika header host tidak disediakan, nilai daridomainNameparameter digunakan.Jika tidak ada header host atau parameter nama domain yang disediakan, nama domain dari asal yang ditetapkan akan digunakan atau header host dari permintaan masuk jika kebijakan forward to origin (FTO) menyertakan host. SNI tidak dapat menyertakan titik dua (
:) dan tidak dapat menjadi alamat IP. SNI bisa mencapai 253 karakter. - diizinkan CertificateNames (opsional, untuk asal khusus non-S3)
-
Anda dapat menyertakan daftar nama sertifikat yang valid untuk digunakan CloudFront untuk memvalidasi pencocokan domain dari sertifikat TLS server asal Anda selama jabat tangan TLS dengan server asal Anda. Bidang ini mengharapkan array nama domain yang valid dan dapat menyertakan domain wildcard, seperti
*.example.com.Anda dapat menentukan hingga 20 nama sertifikat yang diizinkan. Setiap nama sertifikat dapat memiliki hingga 64 karakter.
contoh— Perbarui ke asal permintaan Amazon S3
Contoh berikut mengubah asal permintaan penampil ke bucket S3, mengaktifkan OAC, dan mengatur ulang header khusus yang dikirim ke asal.
cf.updateRequestOrigin({ "domainName" : "amzn-s3-demo-bucket-in-us-east-1.s3.us-east-1.amazonaws.com", "originAccessControlConfig": { "enabled": true, "signingBehavior": "always", "signingProtocol": "sigv4", "originType": "s3" }, // Empty object resets any header configured on the assigned origin "customHeaders": {} });
contoh- Perbarui ke asal permintaan Penyeimbang Beban Aplikasi
Contoh berikut mengubah asal permintaan penampil ke asal Application Load Balancer dan menetapkan header kustom dan batas waktu.
cf.updateRequestOrigin({ "domainName" : "example-1234567890.us-east-1.elb.amazonaws.com", "timeouts": { "readTimeout": 30, "connectionTimeout": 5 }, "customHeaders": { "x-stage": "production", "x-region": "us-east-1" } });
contoh— Perbarui ke asal dengan Origin Shield diaktifkan
Dalam contoh berikut, asal dalam distribusi mengaktifkan Origin Shield. Kode fungsi hanya memperbarui nama domain yang digunakan untuk asal dan menghilangkan semua parameter opsional lainnya. Dalam hal ini, Origin Shield masih akan digunakan dengan nama domain asal yang dimodifikasi karena parameter Origin Shield tidak diperbarui.
cf.updateRequestOrigin({ "domainName" : "www.example.com" });
contoh— Perbarui header host, SNI, dan nama sertifikat yang diizinkan
Awas
Untuk sebagian besar kasus penggunaan, Anda tidak perlu menggunakan jenis modifikasi ini untuk permintaan menuju asal Anda. Parameter ini tidak boleh digunakan kecuali Anda memahami dampak perubahan nilai-nilai ini.
Contoh berikut mengubah nama domain, header host, SNI, dan sertifikat yang diizinkan pada permintaan ke asal.
cf.updateRequestOrigin({ "domainName": "www.example.com", "hostHeader": "test.example.com", "sni": "test.example.net", "allowedCertificateNames": ["*.example.com", "*.example.net"], });
pilih RequestOriginById () metode
Gunakan selectRequestOriginById() untuk memperbarui asal yang ada dengan memilih asal yang berbeda yang sudah dikonfigurasi dalam distribusi Anda. Metode ini menggunakan semua pengaturan yang sama yang ditentukan oleh asal yang diperbarui.
Metode ini hanya menerima asal yang sudah ditentukan dalam distribusi yang sama yang digunakan saat menjalankan fungsi. Origin direferensikan oleh ID asal, yang merupakan nama asal yang Anda tentukan saat menyiapkan asal.
Jika Anda memiliki VPC origin yang dikonfigurasi dalam distribusi Anda, Anda dapat menggunakan metode ini untuk memperbarui asal Anda ke asal VPC Anda. Untuk informasi selengkapnya, lihat Batasi akses dengan asal VPC.
Jika Anda memiliki asal dengan TLS bersama (MTL) diaktifkan di distribusi Anda, Anda dapat menggunakan metode ini untuk memperbarui asal Anda ke m TLS-enabled origin Anda. Untuk informasi selengkapnya, lihat Menggunakan CloudFront Fungsi dengan TLS timbal balik asal.
Permintaan
cf.selectRequestOriginById(origin_id, {origin_overrides})
Dalam contoh sebelumnya, origin_id adalah string yang menunjuk ke nama asal dari asal dalam distribusi yang menjalankan fungsi. origin_overrides Parameter dapat berisi yang berikut:
- HostHeader (opsional, untuk asal kustom non-S3)
-
Header host yang akan digunakan saat membuat permintaan ke asal. Jika ini tidak disediakan, nilai dari
domainNameparameter digunakan.Jika tidak ada header host atau parameter nama domain yang disediakan, nama domain dari asal yang ditetapkan akan digunakan atau header host dari permintaan masuk jika kebijakan forward to origin (FTO) menyertakan host. Header host tidak dapat menyertakan titik dua (
:) dan tidak dapat berupa alamat IP. Header host bisa mencapai 253 karakter. - sni (opsional, untuk asal khusus non-S3)
-
Server Name Indication (SNI) adalah ekstensi protokol Transport Layer Security (TLS) di mana klien menunjukkan nama host mana yang mencoba untuk terhubung pada awal proses jabat tangan TLS. Nilai ini harus cocok dengan nama umum pada sertifikat TLS di server asal Anda. Jika tidak, server asal Anda mungkin menimbulkan kesalahan.
Jika ini tidak disediakan, nilai dari
hostHeaderparameter digunakan. Jika header host tidak disediakan, nilai daridomainNameparameter digunakan.Jika tidak ada header host atau parameter nama domain yang disediakan, nama domain dari asal yang ditetapkan akan digunakan atau header host dari permintaan masuk jika kebijakan forward to origin (FTO) menyertakan host. SNI tidak dapat menyertakan titik dua (
:) dan tidak dapat menjadi alamat IP. SNI bisa mencapai 253 karakter. - diizinkan CertificateNames (opsional, untuk asal khusus non-S3)
-
Anda dapat menyertakan daftar nama sertifikat yang valid untuk digunakan CloudFront untuk memvalidasi pencocokan domain dari sertifikat TLS server asal Anda selama jabat tangan TLS dengan server asal Anda. Bidang ini mengharapkan array nama domain yang valid dan dapat menyertakan domain wildcard, seperti
*.example.com.Anda dapat menentukan hingga 20 nama sertifikat yang diizinkan. Setiap nama sertifikat dapat memiliki hingga 64 karakter.
Permintaan
selectRequestOriginById(origin_id)
Dalam contoh sebelumnya, origin_id adalah string yang menunjuk ke nama asal dari asal dalam distribusi yang menjalankan fungsi.
contoh— Pilih asal permintaan Amazon S3
Contoh berikut memilih asal yang amzn-s3-demo-bucket-in-us-east-1 dinamai dari daftar asal yang terkait dengan distribusi, dan menerapkan pengaturan konfigurasi amzn-s3-demo-bucket-in-us-east-1 asal ke permintaan.
cf.selectRequestOriginById("amzn-s3-demo-bucket-in-us-east-1");
contoh— Pilih asal permintaan Penyeimbang Beban Aplikasi
Contoh berikut memilih asal Application Load Balancer yang dinamai myALB-prod dari daftar asal yang terkait dengan distribusi, dan menerapkan pengaturan konfigurasi myALB-prod untuk permintaan.
cf.selectRequestOriginById("myALB-prod");
contoh— Pilih asal permintaan Application Load Balancer dan ganti header host
Seperti contoh sebelumnya, contoh berikut memilih asal Application Load Balancer yang dinamai myALB-prod dari daftar asal yang terkait dengan distribusi, dan menerapkan pengaturan konfigurasi myALB-prod untuk permintaan. Namun, contoh ini mengganti nilai header host menggunakanorigin_overrides.
cf.overrideRequestOrigin("myALB-prod",{ "hostHeader" : "test.example.com" });
create RequestOriginGroup () metode
Gunakan createRequestOriginGroup() untuk menentukan dua asal yang akan digunakan sebagai grup asal untuk failover dalam skenario yang memerlukan ketersediaan tinggi.
Grup asal mencakup dua asal (primer dan sekunder) dan kriteria failover yang Anda tentukan. Anda membuat grup asal untuk mendukung failover asal di CloudFront. Saat Anda membuat atau memperbarui grup asal menggunakan metode ini, Anda dapat menentukan grup asal alih-alih satu asal. CloudFront akan failover dari asal utama ke asal sekunder, menggunakan kriteria failover.
Jika Anda memiliki VPC origin yang dikonfigurasi dalam distribusi Anda, Anda dapat menggunakan metode ini untuk membuat grup asal menggunakan asal VPC. Untuk informasi selengkapnya, lihat Batasi akses dengan asal VPC.
Jika Anda memiliki asal dengan TLS bersama (MTL) diaktifkan di distribusi Anda, Anda dapat menggunakan metode ini untuk membuat grup asal yang menyertakan m TLS-enabled origin Anda. Untuk informasi selengkapnya, lihat Menggunakan CloudFront Fungsi dengan TLS timbal balik asal.
Permintaan
createRequestOriginGroup({origin_group_properties})
Dalam contoh sebelumnya, origin_group_properties dapat berisi yang berikut:
- OriginID (wajib)
-
Array of
origin_ids, di manaorigin_idadalah string yang menunjuk ke nama asal dari asal dalam distribusi yang menjalankan fungsi. Anda harus memberikan dua asal sebagai bagian dari array. Asal pertama dalam daftar adalah asal utama dan yang kedua berfungsi sebagai asal kedua untuk tujuan failover. - OriginOverrides (opsional)
-
Beberapa pengaturan lanjutan diizinkan untuk diganti dengan menggunakan
{origin_overrides}parameter.origin overridesDapat berisi yang berikut:- HostHeader (opsional, untuk asal kustom non-S3)
-
Header host untuk digunakan saat membuat permintaan ke asal. Jika ini tidak disediakan, nilai dari
domainNameparameter digunakan.Jika tidak ada header host atau parameter nama domain yang disediakan, nama domain dari asal yang ditetapkan akan digunakan atau header host dari permintaan masuk jika kebijakan forward to origin (FTO) menyertakan host. Header host tidak dapat menyertakan titik dua (
:) dan tidak dapat berupa alamat IP. Header host bisa mencapai 253 karakter. - sni (opsional, untuk asal khusus non-S3)
-
Server Name Indication (SNI) adalah ekstensi protokol Transport Layer Security (TLS) di mana klien menunjukkan nama host mana yang mencoba untuk terhubung pada awal proses handshake TLS. Nilai ini harus cocok dengan nama umum pada sertifikat TLS di server asal Anda, jika tidak server asal Anda mungkin menimbulkan kesalahan.
Jika ini tidak disediakan, nilai dari
hostHeaderparameter digunakan. Jika header host tidak disediakan, nilai daridomainNameparameter digunakan.Jika tidak ada header host atau parameter nama domain yang disediakan, nama domain dari asal yang ditetapkan akan digunakan atau header host dari permintaan masuk jika kebijakan forward to origin (FTO) menyertakan host. SNI tidak dapat menyertakan titik dua (
:) dan tidak dapat menjadi alamat IP. SNI bisa mencapai 253 karakter. - diizinkan CertificateNames (opsional, untuk asal khusus non-S3)
-
Anda dapat menyertakan daftar nama sertifikat yang valid untuk digunakan CloudFront untuk memvalidasi pencocokan domain dari sertifikat TLS server asal Anda selama jabat tangan TLS dengan server asal Anda. Bidang ini mengharapkan array nama domain yang valid dan dapat menyertakan domain wildcard, seperti
*.example.com.Anda dapat menentukan hingga 20 nama sertifikat yang diizinkan. Setiap nama sertifikat dapat memiliki hingga 64 karakter.
- Kriteria seleksi (opsional)
-
Pilih apakah akan menggunakan kriteria failover
defaultasal atau menggunakan logika failovermedia-quality-scoreberbasis. Nilai yang valid adalah sebagai berikut:-
defaultmenggunakan kriteria failover, berdasarkan kode status yang ditentukan dalamfailoverCriteria. Jika Anda tidakselectionCriteriamengatur fungsi,defaultakan digunakan. -
media-quality-scoredigunakan ketika kemampuan routing sadar media sedang digunakan.
-
- Kriteria failover (wajib)
-
Array kode status yang, ketika dikembalikan dari asal utama, akan memicu CloudFront failover ke asal sekunder. Jika Anda mengganti grup asal yang ada, array ini akan mengganti semua kode status failover yang ditetapkan dalam konfigurasi asli grup asal.
Saat Anda menggunakan
media-quality-scoreselectionCriteria, CloudFront akan mencoba merutekan permintaan berdasarkan skor kualitas media. Jika asal yang dipilih mengembalikan kode kesalahan yang ditetapkan dalam array ini, CloudFront akan failover ke asal lainnya.
contoh— Buat grup asal permintaan
Contoh berikut membuat grup asal untuk permintaan menggunakan ID asal. ID asal ini berasal dari konfigurasi grup asal untuk distribusi yang digunakan untuk menjalankan fungsi ini.
Secara opsional, Anda dapat menggunakan originOverrides untuk mengganti konfigurasi grup asal untuksni,hostHeader, danallowedCertificateNames.
import cf from 'cloudfront'; function handler(event) { cf.createRequestOriginGroup({ "originIds": [ { "originId": "origin-1", "originOverrides": { "hostHeader": "hostHeader.example.com", "sni": "sni.example.com", "allowedCertificateNames": ["cert1.example.com", "cert2.example.com", "cert3.example.com"] } }, { "originId": "origin-2", "originOverrides": { "hostHeader": "hostHeader2.example.com", "sni": "sni2.example.com", "allowedCertificateNames": ["cert4.example.com", "cert5.example.com"] } } ], "failoverCriteria": { "statusCodes": [500] } }); event.request.headers['x-hookx'] = { value: 'origin-overrides' }; return event.request; }