Membatalkan validasi konten yang di-cache

Pembatalan validasi cache, yang terkadang disebut pembersihan cache, adalah proses mendeklarasikan konten yang di-cache sebagai tidak valid. Hal ini menyebabkan entri dihapus dari cache, lalu diisi ulang dari server asal saat berikutnya konten diminta.

Media CDN mendukung beberapa cara untuk memilih konten yang akan dibatalkan validasinya, sebagai berikut:

  • Host dan jalur URL
  • Awalan URL (karakter pengganti)
  • Menyimpan tag dalam cache, termasuk tag bawaan untuk status, origin, dan content-type

Anda dapat menggabungkan parameter pembatalan validasi ini untuk menargetkan respons cache tertentu dan meminimalkan beban origin pada pengisian cache berikutnya.

Sintaksis pembatalan validasi yang didukung

Sintaksis pembatalan validasi yang didukung adalah sebagai berikut:

Jenis Sintaks Contoh
Pembatalan validasi host Membatalkan validasi respons yang di-cache untuk host yang ditentukan. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"
Pembatalan validasi jalur Membatalkan validasi respons yang di-cache untuk jalur atau awalan jalur yang ditentukan. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/content/1234/hls/*"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/videos/funny.mp4"
Pembatalan validasi tag cache pada kode status HTTP, nama asal, atau jenis MIME Batalkan validasi respons yang di-cache dengan tag yang cocok. Beberapa tag diperlakukan sebagai OR boolean. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="status=404,origin=staging-origin"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="content-type=application/x-mpegurl"

Catatan:

  • Maksimal 10 tag cache dapat ditentukan dalam satu permintaan pembatalan validasi.
  • Anda dapat menggabungkan host, path, dan tags dalam satu permintaan pembatalan validasi. Nilai ini diperlakukan sebagai AND boolean.
  • Jika beberapa tag cache ditentukan, tag tersebut akan diperlakukan sebagai OR boolean. Misalnya, jika Anda menentukan --tags="status=404,origin=staging-origin", semua respons dengan tag cache status=404 akan dibatalkan validasinya, seperti semua respons dengan tag cache origin=staging-origin.

Meng-cache tag

Tag cache (atau kunci pengganti) memungkinkan Anda membatalkan validasi konten berdasarkan metadata arbitrer.

Tag ini ditentukan oleh hal berikut:

  • Menetapkan header HTTP Cache-Tag dalam respons origin, dengan tag yang 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 pembatalan validasi, tag tersebut akan diperlakukan sebagai OR boolean.

Perhatikan contoh berikut:

  • Anda memiliki objek yang di-cache berikut:

    • Objek #1 yang di-cache dengan tag status=200, content-type=video/mp4
    • Objek #2 yang di-cache dengan tag status=404, content-type=text/plain
    • Objek yang di-cache #3 dengan tag status=200, content-type=application/x-mpegurl
  • Anda mengeluarkan permintaan untuk membatalkan validasi objek dengan tags="status=200,content-type=text/plain"

  • Hasil: Ketiga objek dalam cache akan diinvalidasi secara bersamaan. Hal ini untuk menghindari keharusan menentukan semua kemungkinan kombinasi tag, beberapa di antaranya mungkin tidak diketahui.

Catatan:

  • Tag cache default tidak disertakan dalam respons yang ditampilkan kepada klien karena tag tersebut 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-Tag akan dikirim ke klien. Jika Anda ingin mencegah header ini dikirim ke klien, gunakan fitur responseHeadersToRemove di routeRule untuk menghapus header Cache-Tag. Sebagai 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 tempat konten diambil. Anda tidak perlu menentukan tag ini dalam respons origin.

Tag Detail
status=HTTP_STATUS_CODE

Tag cache status ditetapkan berdasarkan kode status HTTP yang ditampilkan dari respons yang di-cache.

Misalnya, Anda dapat membatalkan validasi semua respons HTTP 404 yang di-cache dengan menentukan status=404 dalam permintaan pembatalan validasi.

content-type=MIME_TYPE

Tag cache content-type ditetapkan berdasarkan jenis MIME yang ditetapkan di header respons HTTP Content-Type.

Misalnya, jenis MIME playlist HLS adalah application/x-mpegURL atau vnd.apple.mpegURL.

Hal ini memungkinkan Anda membatalkan validasi jenis konten tertentu.

origin=ORIGIN_NAME

Tag cache origin ditetapkan berdasarkan nama origin tempat konten diambil.

Nilai origin mereferensikan nilai .routing.routeRules[].origin, dan memungkinkan Anda membatalkan validasi konten dari server origin yang salah dikonfigurasi atau berpotensi berperilaku buruk.

Batasan tag cache

Tag cache memiliki batasan berikut:

  • Tidak boleh melebihi 120 byte per tag
  • Total nama tag per objek yang di-cache tidak boleh melebihi 4 KiB (4.096 byte)
  • 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=, atau content-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 akan 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 validasi untuk membatalkan validasi kumpulan konten tertentu.

Membatalkan validasi menurut host

Konsol

  1. Buka halaman Media CDN di konsol Google Cloud.
    Buka Media CDN
  2. Klik tab Services.
  3. Klik layanan Anda.
  4. Klik tab Pembatalan validasi cache.
  5. Agar pola jalur diinvalidasi, masukkan nama host, diikuti dengan jalur. Misalnya: media.example.com/cats atau media.example.com/cat*. Nama host tidak boleh menyertakan *.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host=HOST

Ganti kode berikut:

  • SERVICE_NAME dengan nama layanan Edge Cache.
  • HOST dengan nama host lengkap dari entri cache yang akan dibatalkan validasinya.

Contoh:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"

Membatalkan validasi menurut jalur

Konsol

  1. Buka halaman Media CDN di konsol Google Cloud.
    Buka Media CDN
  2. Klik tab Services.
  3. Klik layanan Anda.
  4. Klik tab Pembatalan validasi cache.
  5. Agar pola jalur diinvalidasi, masukkan jalur. Misalnya: /videos/funny.mp4 atau /segments/e94a6b1f731/*.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path=PREFIX

Ganti kode berikut:

  • SERVICE_NAME dengan nama layanan Edge Cache.
  • HOST dengan nama host entri cache yang akan dibatalkan validasinya. Untuk mencocokkan nama host apa pun, hapus tanda host.
  • PREFIX dengan awalan jalur yang diakhiri dengan '*' yang cocok dengan entri cache yang akan dibatalkan validasinya.

Contoh:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/segments/e94a6b1f731/*"

Anda juga dapat membatalkan validasi jalur yang tepat dengan menghapus karakter * di akhir. Meneruskan --path="/videos/funny.mp4" akan membatalkan respons yang di-cache (jika ada) yang cocok dengan jalur tersebut.

Membatalkan validasi menurut tag cache

Konsol

Membatalkan validasi berdasarkan tag cache tidak didukung di Konsol Google Cloud.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags=TAGS

Ganti kode berikut:

  • SERVICE_NAME dengan nama layanan Edge Cache.
  • TAGS dengan daftar tag yang dipisahkan koma.

Contoh:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="status=404,content-type=text/plain"

Latensi pembatalan validasi

Pembatalan validasi 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 validasi akan dicatat ke Cloud Logging.

Batasan

Pembatalan validasi memiliki batas kapasitas. Jika melebihi batas kapasitas pembatalan validasi, Anda akan mendapatkan pesan error 429 HTTP dengan status RESOURCE_EXHAUSTED.

Pembatalan validasi dapat berukuran berapa pun. Misalnya, membatalkan validasi /images/my-image.png dihitung sebagai satu pembatalan validasi. Membatalkan validasi /images/* juga dihitung sebagai satu pembatalan validasi.

Perilaku ini berbeda dengan perilaku di Cloud CDN. Cloud CDN mendukung satu invalidasi per menit.