Invalidasi cache, terkadang disebut penghapusan permanen cache, adalah proses yang menyatakan konten yang di-cache tidak valid. Hal ini menyebabkan entri dihapus dari cache, lalu diisi ulang dari server asal pada saat berikutnya konten tersebut diminta.
Media CDN mendukung beberapa cara untuk memilih konten yang akan dibatalkan, sebagai berikut:
- Host dan jalur URL
- Awalan URL (karakter pengganti)
- Tag cache, termasuk tag bawaan untuk
status,origin, dancontent-type
Anda dapat menggabungkan parameter invalidasi ini untuk menargetkan respons tertentu yang di-cache dan meminimalkan beban server asal pada pengisian cache berikutnya.
Sintaksis pembatalan yang didukung
Sintaksis pembatalan yang didukung adalah sebagai berikut:
| Jenis | Sintaksis | Contoh |
|---|---|---|
| Invalidasi host | Membatalkan validasi respons yang di-cache untuk host yang ditentukan. |
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
| Pembatalan jalur | Membatalkan validasi respons yang di-cache untuk jalur atau awalan jalur yang ditentukan. |
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
| Pembatalan tag cache pada kode status HTTP, nama asal, atau jenis MIME |
Membatalkan validasi respons yang di-cache dengan tag yang cocok. Beberapa tag diperlakukan sebagai OR boolean.
|
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Catatan:
- Hingga 10 tag cache dapat ditentukan dalam satu permintaan invalidasi.
- Anda dapat menggabungkan
host,path, dantagsdalam satu permintaan pembatalan. Atribut ini diperlakukan sebagai booleanAND. - Jika beberapa tag cache ditentukan, tag tersebut akan diperlakukan sebagai boolean
OR. Misalnya, jika Anda menentukan--tags="status=404,origin=staging-origin", semua respons dengan tag cachestatus=404akan dibatalkan validasinya, begitu juga semua respons dengan tag cacheorigin=staging-origin.
Tag cache
Tag cache (atau kunci surrogate) dapat Anda gunakan untuk menginvalidasi konten berdasarkan metadata arbitrer.
Tag ini ditentukan oleh hal berikut:
- Menetapkan header HTTP
Cache-Tagdalam respons asal, dengan tag ditentukan sebagai daftar nilai yang dipisahkan koma. - Tag bawaan berdasarkan kode status HTTP respons, jenis MIME
dari header respons HTTP
Content-Type, atau nama asal tempat respons diambil.
Jika beberapa tag ditentukan dalam satu permintaan invalidasi, tag tersebut akan
diperlakukan sebagai boolean OR.
Perhatikan contoh berikut:
Anda memiliki objek yang di-cache berikut:
- Objek yang di-cache #1 dengan tag
status=200,content-type=video/mp4 - Objek yang di-cache #2 dengan tag
status=404,content-type=text/plain - Objek yang di-cache #3 dengan tag
status=200,content-type=application/x-mpegurl
- Objek yang di-cache #1 dengan tag
Anda mengirim permintaan untuk menginvalidasi objek dengan
tags="status=200,content-type=text/plain"Hasil: Ketiga objek yang di-cache tersebut akan diinvalidasi secara bersamaan. Hal ini dilakukan untuk mencegah keharusan menentukan semua kemungkinan kombinasi tag, yang beberapa di antaranya mungkin tidak diketahui.
Catatan:
- Tag cache default tidak disertakan dalam respons yang ditampilkan kepada klien karena mencerminkan header yang ada (seperti baris status atau Content-Type) atau detail konfigurasi internal.
- Tag cache yang dikirim oleh origin di header respons HTTP
Cache-Tagakan dikirim ke klien. Jika Anda ingin mencegahnya dikirim ke klien, gunakan fiturresponseHeadersToRemovepadarouteRuleuntuk menghapus headerCache-Tag. Untuk contoh, lihat dokumentasi header kustom.
Tag bawaan
Respons secara otomatis memiliki tag cache berikut yang diterapkan untuk mendukung pembatalan validasi konten berdasarkan kode status, jenis MIME, atau asal konten diambil. Anda tidak perlu menentukan tag ini dalam respons asal.
| Tag | Detail |
|---|---|
status=HTTP_STATUS_CODE
|
Tag cache Misalnya, Anda dapat membatalkan semua respons HTTP 404 yang di-cache dengan
menentukan |
content-type=MIME_TYPE
|
Tag cache Misalnya, jenis MIME playlist HLS adalah
Dengan begitu, Anda dapat membatalkan validasi jenis konten tertentu. |
origin=ORIGIN_NAME
|
Tag cache Nilai |
Batasan tag cache
Tag cache memiliki batasan berikut:
- Tidak boleh melebihi 120 byte per tag
- Tidak boleh melebihi 4 KiB (4.096 byte) total nama tag per objek yang di-cache
- Tidak boleh melebihi 50 tag per objek, tidak termasuk tag default yang ditambahkan oleh Media CDN
- Harus berupa nama token HTTP yang valid, seperti yang ditentukan dalam Bagian 3.2.6 HTTP RFC 7230
- Tidak boleh menyertakan awalan
status=,origin=, ataucontent-type=bawaan (yang diabaikan).
Tag yang tidak termasuk dalam batas ini atau memenuhi persyaratan ini akan diabaikan. Dalam beberapa kasus (seperti saat header respons terlalu besar), respons gagal dan tidak di-cache.
Izin
Izin networkservices.EdgeCacheServices.invalidateCache
mengontrol akses ke invalidateCache API.
Izin ini disertakan dalam peran Identity and Access Management networkservices.edgeCacheAdmin dan networkservices.edgeCacheUser.
Contoh
Contoh berikut menunjukkan cara membatalkan validasi respons yang di-cache untuk layanan Media CDN.
Anda dapat menggabungkan kolom host, path, dan tags
dalam satu permintaan pembatalan untuk membatalkan serangkaian konten tertentu.
Membatalkan validasi berdasarkan host
Konsol
- Di Konsol Google Cloud , buka halaman Media CDN.
- Klik tab Services.
- Klik layanan.
- Klik tab Cache invalidation.
- Untuk membatalkan validasi cache menurut host, tentukan nama host untuk Host, kecuali jika Anda ingin membatalkan validasi jalur untuk semua nama host.
Nama host tidak boleh berisi
*. - Klik Invalidate, lalu klik Confirm untuk menunjukkan bahwa Anda ingin Media CDN membatalkan validasi konten yang cocok dengan host.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \
--host=HOST
Ganti kode berikut:
SERVICE_NAMEdengan nama layanan Edge Cache.HOSTdengan nama host lengkap dari entri cache yang akan dibatalkan.
Contoh:
gcloud edge-cache services invalidate-cache SERVICE_NAME \
--host="media.example.com"
Membatalkan validasi semua konten yang terkait dengan host dapat menimbulkan risiko dan memengaruhi performa. Pertimbangkan untuk mengurangi cakupan pembatalan dengan memberikan jalur tertentu atau tag cache yang relevan.
Membatalkan validasi menurut jalur
Konsol
- Di Konsol Google Cloud , buka halaman Media CDN.
- Klik tab Services.
- Klik layanan.
- Klik tab Cache invalidation.
- Untuk membatalkan validasi cache menurut jalur, untuk Path, tentukan jalur dan nama file, misalnya,
/videos/funny.mp4atau/segments/e94a6b1f731/*. - Klik Invalidate.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \
--path=PREFIX
Ganti kode berikut:
SERVICE_NAMEdengan nama layanan Edge Cache.HOSTdengan nama host entri cache yang akan dibatalkan. Untuk mencocokkan nama host apa pun, hapus tanda host.PREFIXdengan awalan jalur yang diakhiri dengan '*' yang mencocokkan entri cache yang akan diinvalidasi.
Contoh:
gcloud edge-cache services invalidate-cache SERVICE_NAME \
--path="/segments/e94a6b1f731/*"
Anda juga dapat membatalkan jalur yang tepat dengan menghilangkan karakter *
di akhir. Meneruskan --path="/videos/funny.mp4" akan membatalkan
respons yang di-cache (jika ada) yang cocok dengan jalur tersebut.
Membatalkan validasi berdasarkan tag cache
Konsol
- Di Konsol Google Cloud , buka halaman Media CDN.
- Klik tab Services.
- Klik layanan.
- Klik tab Cache invalidation.
- Untuk memvalidasi cache menurut tag, untuk Tag cache, tentukan satu atau beberapa tag untuk membatalkan validasi cache. Gunakan spasi atau koma untuk memisahkan tag. Anda dapat menambahkan maksimal 10 tag cache untuk invalidasi.
- Klik Invalidate.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \
--tags=TAGS
Ganti kode berikut:
SERVICE_NAMEdengan nama layanan Edge Cache.TAGSdengan daftar tag yang dipisahkan koma.
Contoh:
gcloud edge-cache services invalidate-cache SERVICE_NAME \
--tags="status=404,content-type=text/plain"
Latensi invalidasi
Invalidasi cache di ribuan lokasi Media CDN biasanya selesai dalam satu menit secara global.
Dalam beberapa kasus, pembatalan validasi dapat memerlukan waktu lebih lama, bergantung pada beban sistem, konektivitas, dan volume konten yang dibatalkan validasinya.
Logging
Jika log audit diaktifkan, panggilan pembatalan akan dicatat ke Cloud Logging.
Batasan
Invalidasi memiliki batasan kapasitas. Jika Anda melebihi batas frekuensi pembatalan,
Anda akan mendapatkan pesan error HTTP 429 dengan status RESOURCE_EXHAUSTED.
Pembatalan dapat berukuran berapa pun. Misalnya, membatalkan
/images/my-image.png dihitung sebagai satu pembatalan. Membatalkan validasi /images/* juga
dihitung sebagai satu pembatalan validasi.