Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membatalkan konten dengan tag cache
Amazon CloudFront mendukung pembatalan tag, yang memungkinkan Anda membatalkan objek yang di-cache berdasarkan tag semantik, bukan jalur URL. Ini memberi Anda kontrol fleksibel atas pembatalan cache tanpa memerlukan struktur URL Anda agar sesuai dengan strategi pembatalan Anda.
Cara kerja pembatalan tag
-
Konfigurasikan distribusi Anda: Tambahkan a
CacheTagConfigke distribusi Anda dengan menentukan nama header HTTP yang digunakan asal Anda untuk mengembalikan tag cache. -
Tandai objek di asal Anda: Saat mengembalikan objek yang ingin Anda cache dengan tag, konfigurasikan asal Anda untuk menyertakan header yang ditentukan dalam respons HTTP dengan nilai tag yang dipisahkan koma.
HTTP/1.1 200 OK Content-Type: text/html x-amz-meta-cache-tag: product:electronics, category:tv, brand:example Cache-Control: max-age=3600catatan
Untuk asal S3, Anda dapat melampirkan tag cache ke objek S3 Anda sebagai metadata. Anda dapat menambahkan entri metadata dengan kunci pilihan Anda (contoh:
cache-tag) dan daftar tag yang dipisahkan koma sebagai nilai (contoh:).product:electronics, category:tv, brand:exampleS3 memunculkan metadata objek sebagai header respons yang diawali
x-amz-meta-<Key>, sehingga kunci metadata akan dikembalikan sebagai header.cache-tagx-amz-meta-cache-tagAnda dapat mengatur keHeaderNamedalamCacheTagConfigx-amz-meta-cache-taguntuk mengaktifkan pengiriman invalidasi ke tag ini.catatan
Atau, Anda dapat melampirkan respons asal fungsi Lambda @Edge ke perilaku cache Anda untuk menambahkan header tag cache. Jika menggunakan Lambda @Edge, nama header tidak perlu mengikuti format.
x-amz-meta-<Key> -
Membatalkan menurut tag: Gunakan
CreateInvalidationAPI dengan#awalan untuk membatalkan semua objek yang di-cache dengan tag yang ditentukan.aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#product:electronics"Ini membatalkan SEMUA objek cache yang berisi tag
product:electronics, terlepas dari jalur URL-nya.
Persyaratan format tag
Nilai header respons asal:
-
Tag dipisahkan koma dalam nilai header.
-
Ruang depan dan belakang di sekitar setiap tag dipangkas.
-
tag1, tag2, tag3Keduanyatag1,tag2,tag3valid dan setara.
Nilai tag individu:
-
Karakter terlihat ASCII (33—126)
-
Tidak ada karakter kontrol, spasi, atau koma
-
Tidak peka huruf besar/kecil
-
Maksimum 256 karakter per tag
-
Maksimal 50 tag per objek (tag tambahan diabaikan)
Mengkonfigurasi distribusi untuk pembatalan tag
Untuk mengaktifkan pembatalan tag, tambahkan CacheTagConfig ke konfigurasi distribusi Anda:
aws cloudfront create-distribution \ --distribution-config '{ "CallerReference": "my-distribution", "CacheTagConfig": { "HeaderName": "x-amz-meta-cache-tag" }, "DefaultCacheBehavior": { "TargetOriginId": "myOrigin", "ViewerProtocolPolicy": "redirect-to-https", "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6" }, "Origins": { ... }, "Enabled": true, "Comment": "Distribution with tag support" }'
Membuat pembatalan tag
Gunakan # awalan dalam --paths parameter untuk menentukan tag:
# Invalidate all objects tagged with "user1" aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#user1" # Invalidate objects matching any of multiple tags (OR logic) aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#user1" "#product-category:electronics" # Mix path and tag invalidations in one batch aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "/index.html" "#user1" "/images/*" "#product-category:electronics"
Memeriksa status pembatalan
Gunakan GetInvalidation untuk memeriksa status. Respons mencakup item path dan tag:
aws cloudfront get-invalidation \ --distribution-iddistribution_ID\ --idinvalidation_ID
Pertimbangan penting
-
Diperlukan keikutsertaan: Pembatalan tag hanya berfungsi pada distribusi yang telah dikonfigurasi.
CacheTagConfigDistribusi tanpa konfigurasi ini mengabaikan header tag cache dari asal. -
Batas pemrosesan tag: CloudFront memproses hingga 50 tag per objek yang di-cache. Jika respons asal berisi lebih dari 50 tag, tag tambahan di luar batas tidak disimpan.
-
Mengubah nama header: Pembatalan tag dicari terhadap konfigurasi saat ini.
CacheTagConfigJika Anda mengubahHeaderNamedalamCacheTagConfig, pembatalan yang dikeluarkan untuk objek yang di-cache dengan tag di bawah nama header lama tidak akan lagi dievaluasi. Jika Anda perlu mengubah nama header, mulailah mengembalikan header tag cache baru dan lama dengan objek Anda, lalu keluarkan pembatalan jalur (misalnya,/*) atau batalkan tag yang ada sebelum mengubah nama header untuk menghindari penyajian konten basi. Setelah selesai, Anda dapat berhenti mengirim header tag cache lama dengan objek Anda. -
Menghapus CacheTagConfig: Saat Anda menghapus
CacheTagConfigdari distribusi, CloudFront berhenti mengekstrak tag dari respons asal. Objek cache yang ada dengan tag disajikan secara normal sampai kedaluwarsa atau tidak valid oleh jalur. -
Kompatibilitas mundur: Pembatalan jalur dan wildcard yang ada terus berfungsi tidak berubah. Pembatalan tag bersifat aditif — Anda dapat menggunakan kedua metode pada distribusi yang sama.
-
Penyewa distribusi: Pembatalan tag juga didukung untuk penyewa distribusi melalui API.
CreateInvalidationForDistributionTenant
Contoh kasus penggunaan
Contoh 1: Katalog produk e-Commerce
Situs e-commerce menandai halaman produk yang di-cache dengan produk, kategori, dan merek:
x-amz-meta-cache-tag: category:electronics, brand:acme, product:12345
Saat ACME memperbarui branding mereka, batalkan semua produk ACME sekaligus:
aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#brand:acme"
Contoh 2: Platform konten buatan pengguna
Platform menandai konten yang di-cache dengan ID pengguna pemilik:
x-amz-meta-cache-tag: user:12345, content-type:image
Saat pengguna menutup akun mereka, batalkan semua kontennya setelah Anda menghapusnya dari asal:
aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#user:12345"
Contoh 3: Pembuatan versi konten
Sebuah konten tag CMS dengan pengidentifikasi versi:
x-amz-meta-cache-tag: version:v2, template:homepage
Saat menerapkan versi baru, batalkan semua konten v2:
aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#version:v2"