Ringkasan pembatalan validasi cache

Halaman ini memberikan ringkasan tentang invalidasi cache Cloud CDN.

Apa yang dimaksud dengan pembatalan cache?

Setelah di-cache, objek biasanya tetap berada dalam cache hingga masa berlakunya habis atau dikeluarkan untuk memberi ruang bagi konten baru. Sebaiknya hapus objek dari cache sebelum waktu habis masa berlakunya secara normal. Anda dapat memaksa objek atau kumpulan objek untuk diabaikan oleh cache dengan meminta pembatalan validasi cache.

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

Cloud CDN mendukung penggunaan tag cache (Pratinjau) dan pencocok pembatalan validasi, seperti host dan jalur URL, untuk permintaan pembatalan validasi.

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

Anda harus memastikan bahwa server backend menampilkan konten yang benar sebelum meminta pembatalan validasi cache. Jika tidak, saat Cloud CDN meminta konten lagi, Cloud CDN mungkin menyimpan konten yang salah ke dalam cache.

Permintaan pembatalan validasi dibatasi kapasitasnya sebagai berikut:

  • Untuk tag cache (Pratinjau), Anda dapat mengirimkan hingga 500 permintaan pembatalan validasi per menit. Setiap permintaan pembatalan validasi akan berlaku dalam waktu sekitar 10 detik.
  • Untuk pencocok pembatalan validasi lainnya, Anda dapat mengirimkan maksimal satu pembatalan validasi per menit. Setiap permintaan pembatalan validasi akan diterapkan dalam waktu sekitar satu hingga tiga menit.

Cloud CDN tidak membatasi jumlah objek atau ukuran total semua objek yang diinvalidasi untuk setiap permintaan.

Pembatalan validasi menurut URL

Setiap permintaan pembatalan validasi menentukan pola jalur yang mengidentifikasi objek atau kumpulan objek yang harus dibatalkan validasinya. Pola jalur dapat berupa jalur tertentu, seperti /cat.jpg, atau seluruh struktur direktori, seperti /pictures/*. Aturan berikut berlaku untuk pola jalur:

  • Pola jalur harus dimulai dengan /.
  • Nilai ini tidak boleh menyertakan ? atau #.
  • Tidak boleh menyertakan * kecuali sebagai karakter terakhir setelah /.
  • Jika diakhiri dengan /*, string sebelumnya adalah awalan, dan semua objek yang jalurnya dimulai dengan awalan tersebut akan menjadi tidak valid.

Pola jalur dibandingkan dengan komponen jalur URL, yang merupakan semuanya antara nama host dan ? atau # yang mungkin ada.

Jika memiliki URL yang berisi string kueri, misalnya /images.php?image=fred.png, Anda tidak dapat membatalkan validasi objek secara selektif yang hanya berbeda berdasarkan string kueri. Misalnya, jika Anda memiliki dua gambar, /images.php?image=fred.png dan /images.php?image=barney.png, Anda tidak dapat menjadikan fred.png tidak valid saja. Untuk membatalkan semua gambar yang ditayangkan oleh images.php, gunakan /images.php sebagai pola jalur.

Pembatalan validasi untuk satu host

Pembatalan validasi cache akan membatalkan validitas jalur untuk semua nama host Anda. Misalnya, jika Anda memiliki example.com dan example2.com yang mengarah ke load balancer yang sama, dan Anda membatalkan validasi /images/cat.jpg, example.com/images/cat.jpg dan example2.com/images/cat.jpg akan menjadi tidak valid.

Anda dapat membatasi pembatalan validasi hanya ke salah satu host dengan menambahkan tanda --host ke perintah.

Invalidasi menurut tag cache

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

Tag ini ditentukan dengan header HTTP Cache-Tag dalam respons backend. Tag cache dari backend di header respons HTTP Cache-Tag dikirim ke klien.

Tag cache memiliki batas 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

Jika batas tag ini terlampaui, respons tidak akan di-cache dan keputusan ini akan dicatat ke dalam log sebagai RESPONSE_CACHE_TAG_INVALID di LoadBalancerLogEntry.cacheDecision.

Anda dapat menentukan hingga 10 tag cache per permintaan pembatalan validasi. Jika beberapa tag ditentukan dalam satu permintaan pembatalan validasi, tag tersebut akan diperlakukan sebagai OR logis. Pertimbangkan contoh saat Anda memiliki objek yang di-cache berikut:

  • Objek #1 yang di-cache dengan tag js, 2020-12-23, dan prod
  • Objek #2 yang di-cache dengan tag css, 2020-11-30, dan prod
  • Objek #3 yang di-cache dengan tag img 2020-11-30, dan staging

Saat Anda mengeluarkan permintaan untuk membatalkan validasi objek yang cocok dengan tags="prod,2020-11-30", ketiga objek dalam cache akan dibatalkan validasinya. Pendekatan ini berarti Anda tidak perlu mengetahui atau menentukan semua kemungkinan kombinasi tag saat ingin membatalkan validasi objek.

Jika Anda menentukan pencocok pembatalan validasi beserta tag cache, permintaan pembatalan validasi hanya berlaku untuk objek bertag yang cocok dengan pencocok pembatalan validasi. Pertimbangkan contoh dengan objek yang di-cache berikut:

  • Objek #1 yang di-cache dengan URL https://staging.example.com/img/cat.jpg dan tag a
  • Objek #2 yang di-cache dengan URL https://example.com/img/cat.jpg dan tag a
  • Objek #3 yang di-cache dengan URL https://staging.example.com/js/cat.js dan tag a
  • Objek #4 yang di-cache dengan URL https://staging.example.com/img/logo.jpg dan tag b

Saat Anda mengeluarkan permintaan untuk membatalkan validasi objek yang cocok dengan --host="staging.example.com" --path="/img/*" --tags="a", hanya objek #1 yang akan dibatalkan validasinya. Objek #2, #3, dan #4 masing-masing tidak cocok dengan host, jalur, atau tag.

Latensi pembatalan validasi

Karena Cloud CDN adalah sistem terdistribusi, Cloud CDN mungkin melaporkan bahwa invalidasi telah selesai meskipun sejumlah kecil cache belum memproses permintaan invalidasi. Situasi ini jarang terjadi dan akan otomatis diperbaiki.

Praktik terbaik

Batalkan validasi hanya yang diperlukan karena membatalkan validasi terlalu banyak dapat menyebabkan lonjakan permintaan yang ditayangkan cache untuk tiba-tiba memukul instance atau bucket Anda.

Pembatalan validasi dimaksudkan untuk digunakan dalam keadaan luar biasa, bukan sebagai bagian dari alur kerja normal Anda. Pembatalan validasi tidak memengaruhi salinan yang di-cache di cache browser web atau cache yang dioperasikan oleh penyedia layanan internet pihak ketiga.

Sebagai alternatif untuk pembatalan validasi rutin, Anda dapat secara proaktif menetapkan waktu habis masa berlaku yang sesuai pada respons atau menggunakan URL yang berbeda untuk versi konten yang berbeda. Untuk mengetahui informasi selengkapnya tentang waktu habis masa berlaku, lihat Waktu habis masa berlaku dan permintaan validasi.

Pembatalan validasi dengan referensi layanan lintas project VPC Bersama

Pembatalan validasi cache dikonfigurasi di project frontend; yaitu, project yang memiliki aturan penerusan, proxy target, dan peta URL load balancer. Jadi, saat Anda menggunakan Load Balancer Aplikasi eksternal global dengan referensi layanan lintas project VPC Bersama, secara default, administrator project layanan tidak memiliki izin yang diperlukan untuk meminta pembatalan validasi cache.

Pembatalan validasi cache hanya dapat dikeluarkan oleh akun utama yang memiliki peran Identity and Access Management (IAM) untuk mengonfigurasi resource load balancer di project frontend—misalnya, peran Compute Network Admin (roles/compute.networkAdmin).

Administrator layanan, yang mengontrol penyediaan layanan backend dalam project terpisah, dapat bekerja sama dengan administrator load balancer project frontend untuk mengeluarkan pembatalan validasi cache untuk layanan lintas project mereka. Untuk penulisan ulang URL, pastikan pembatalan validasi cocok dengan host dan jalur pra-penulisan ulang yang dikirim klien.

Langkah berikutnya