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 konten tersebut diminta kembali.

Media CDN mendukung beberapa cara pemilihan konten yang akan dibatalkan, sebagai berikut:

  • Host dan Jalur URL
  • Awalan URL (karakter pengganti)
  • Tag 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 asal pada pengisian cache berikutnya.

Sintaksis pembatalan validasi yang didukung

Sintaksis pembatalan validasi yang didukung adalah sebagai berikut:

Jenis Sintaksis Contoh
Pembatalan validasi host Membatalkan respons yang di-cache untuk host yang ditentukan. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"
Pembatalan jalur Membatalkan 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 Membatalkan 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 tersebut diperlakukan sebagai AND boolean.
  • Jika beberapa tag cache ditentukan, tag tersebut diperlakukan sebagai OR boolean. Misalnya, jika Anda menentukan --tags="status=404,origin=staging-origin", semua respons dengan tag cache status=404 akan menjadi tidak valid, seperti halnya semua respons dengan tag cache origin=staging-origin.

Tag cache

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

Tag ini ditentukan oleh hal berikut:

  • Menetapkan header HTTP Cache-Tag dalam respons asal, 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 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 dalam cache dengan tag status=200, content-type=video/mp4
    • Objek #2 dalam cache dengan tag status=404, content-type=text/plain
    • Objek #3 dalam cache 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 yang di-cache menjadi tidak valid secara bersamaan. Hal ini bertujuan agar Anda tidak perlu 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 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 dikirim ke klien. Jika Anda ingin mencegahnya dikirim ke klien, gunakan fitur responseHeadersToRemove di routeRule untuk menghapus header Cache-Tag. Misalnya, lihat dokumentasi header kustom.

Tag bawaan

Respons akan otomatis menerapkan tag cache berikut 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 status ditetapkan berdasarkan kode status HTTP yang ditampilkan dari respons yang di-cache.

Misalnya, Anda dapat membatalkan semua respons HTTP 404 yang di-cache dengan menetapkan 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.

Tindakan ini memungkinkan Anda membatalkan jenis konten tertentu.

origin=ORIGIN_NAME

Tag cache origin ditetapkan berdasarkan nama asal konten tersebut diambil.

Nilai origin mereferensikan nilai .routing.routeRules[].origin, dan memungkinkan Anda membatalkan konten dari server asal yang salah dikonfigurasi atau berpotensi menimbulkan gangguan.

Batasan tag cache

Tag cache memiliki batasan berikut:

  • Tidak boleh melebihi 120 byte per tag
  • Tidak boleh melebihi 1 KiB (1.024 byte) dari total nama tag per objek yang di-cache
  • Tidak boleh lebih dari 10 tag per objek, tidak termasuk tag default yang ditambahkan oleh Media CDN
  • Harus berupa nama token HTTP yang valid, seperti yang ditetapkan di Bagian 3.2.6 HTTP RFC 7230
  • Tidak boleh menyertakan awalan status=, origin=, atau content-type= bawaan (yang diabaikan).

Tag yang tidak berada dalam batas ini atau memenuhi persyaratan ini akan diabaikan. Dalam beberapa kasus (misalnya saat header respons terlalu besar), respons akan gagal dan tidak di-cache.

Izin

Izin networkservices.EdgeCacheServices.invalidateCache mengontrol akses ke API invalidateCache. Izin ini disertakan dalam peran Pengelolaan Akses dan Identitas networkservices.edgeCacheAdmin dan networkservices.edgeCacheUser.

Contoh

Contoh berikut menunjukkan cara membatalkan 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 oleh 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 tidak divalidasi, 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 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. Untuk membatalkan validasi pola jalur, 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. Agar cocok dengan nama host apa pun, hilangkan 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 jalur persis 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

Pembatalan 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

Pembatalan validasi cache di ribuan lokasi Media CDN biasanya selesai dalam waktu 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 kapasitas dibatasi. Jika melebihi batas kapasitas validasi, Anda akan mendapatkan pesan error HTTP 429 dengan status RESOURCE_EXHAUSTED.

Pembatalan validasi bisa berapa pun. Misalnya, membatalkan validasi /images/my-image.png akan 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 pembatalan validasi per menit.