View a markdown version of this page

Metode pembantu untuk modifikasi asal - Amazon CloudFront

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 originAccessControlConfig cocok 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, sepertiwww.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, sepertiamzn-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 denganexample-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. headers Nama 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-name CloudFront , mengubahnya Example-Header-Name menjadi 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 false nilai true atau.

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-2 untuk 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 false nilai true atau.

SigningBehavior (diperlukan saat diaktifkan)

Menentukan CloudFront tanda permintaan mana (menambahkan informasi otentikasi ke). Tentukan always untuk 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, mengganti Authorization header 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 berisi Authorization header, maka tand CloudFront atangani permintaan asal. Jika permintaan penampil berisi Authorization header, maka CloudFront tidak menandatangani permintaan asal dan sebaliknya meneruskan Authorization header dari permintaan penampil.

    Awas

    Untuk meneruskan Authorization header 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, dan lambda.

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 readTimeout berlaku 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 responseCompletionTimeout harus 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 keepAliveTimeout entukan 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 customOriginConfig untuk 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 tidak customOriginConfig disediakan, 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, dan TLSv1.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, dan dualstack. Perubahan ipAddressType hanya didukung ketika domainName properti 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 hostHeader parameter digunakan. Jika header host tidak disediakan, nilai dari domainName parameter 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 domainName parameter 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 hostHeader parameter digunakan. Jika header host tidak disediakan, nilai dari domainName parameter 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 oforigin_ids, di mana origin_id adalah 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 domainName parameter 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 hostHeader parameter digunakan. Jika header host tidak disediakan, nilai dari domainName parameter 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 default asal atau menggunakan logika failover media-quality-score berbasis. Nilai yang valid adalah sebagai berikut:

  • defaultmenggunakan kriteria failover, berdasarkan kode status yang ditentukan dalamfailoverCriteria. Jika Anda tidak selectionCriteria mengatur fungsi, default akan 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; }