Membatalkan validasi konten yang di-cache

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, dan content-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 \
    --host="media.example.com"
Pembatalan 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 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 \
    --tags="status=404,origin=staging-origin"

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

Catatan:

  • Hingga 10 tag cache dapat ditentukan dalam satu permintaan invalidasi.
  • Anda dapat menggabungkan host, path, dan tags dalam satu permintaan pembatalan. Atribut ini diperlakukan sebagai boolean AND.
  • 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 cache status=404 akan dibatalkan validasinya, begitu juga semua respons dengan tag cache origin=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-Tag dalam 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
  • 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-Tag akan dikirim ke klien. Jika Anda ingin mencegahnya dikirim ke klien, gunakan fitur responseHeadersToRemove pada routeRule untuk menghapus header Cache-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 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 menentukan status=404 dalam permintaan invalidasi.

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.

Dengan begitu, Anda dapat membatalkan validasi jenis konten tertentu.

origin=ORIGIN_NAME

Tag cache origin ditetapkan berdasarkan nama asal tempat konten diambil.

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

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=, 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 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

  1. Di Konsol Google Cloud , buka halaman Media CDN.

    Buka Media CDN

  2. Klik tab Services.
  3. Klik layanan.
  4. Klik tab Cache invalidation.
  5. 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 *.
  6. 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_NAME dengan nama layanan Edge Cache.
  • HOST dengan 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

  1. Di Konsol Google Cloud , buka halaman Media CDN.

    Buka Media CDN

  2. Klik tab Services.
  3. Klik layanan.
  4. Klik tab Cache invalidation.
  5. Untuk membatalkan validasi cache menurut jalur, untuk Path, tentukan jalur dan nama file, misalnya, /videos/funny.mp4 atau /segments/e94a6b1f731/*.
  6. Klik Invalidate.

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. Untuk mencocokkan nama host apa pun, hapus tanda host.
  • PREFIX dengan 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

  1. Di Konsol Google Cloud , buka halaman Media CDN.

    Buka Media CDN

  2. Klik tab Services.
  3. Klik layanan.
  4. Klik tab Cache invalidation.
  5. 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.
  6. Klik Invalidate.

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 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.