View a markdown version of this page

Menghapus validasi konten dengan tanda cache - Amazon CloudFront

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menghapus validasi konten dengan tanda cache

Amazon CloudFront mendukung pembatalan tag, yang memungkinkan Anda membatalkan objek yang di-cache berdasarkan tag semantik daripada jalur URL. Ini memberi Anda kontrol fleksibel atas pembatalan cache tanpa memerlukan struktur URL Anda agar sesuai dengan strategi pembatalan Anda.

Sebelum Anda membatalkan konten dengan tag cache, tinjau persyaratan dan pertimbangan diYang perlu Anda ketahui saat menginvalidasi tanda.

Cara kerja pembatalan tag

  1. Konfigurasikan distribusi Anda: Tambahkan a CacheTagConfig ke distribusi Anda dengan menentukan nama header HTTP yang digunakan asal Anda untuk mengembalikan tag cache.

  2. 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=3600
    catatan

    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:example).

    S3 menampilkan metadata objek sebagai header respons yang diawali dengan x-amz-meta-<Key>, sehingga kunci metadata cache-tag akan dikembalikan sebagai x-amz-meta-cache-tag header. Anda dapat mengatur HeaderName di Anda CacheTagConfig x-amz-meta-cache-tag untuk mengaktifkan pengiriman pembatalan ke tag ini.

    catatan

    Atau, Anda dapat melampirkan fungsi respons asal Lambda @Edge ke perilaku cache Anda untuk menambahkan header tag cache. Jika menggunakan Lambda @Edge, nama header tidak perlu mengikuti x-amz-meta-<Key> format.

  3. Batalkan berdasarkan tag: Gunakan CreateInvalidation API dengan # awalan untuk membatalkan semua objek yang di-cache dengan tag yang ditentukan.

    aws cloudfront create-invalidation \ --distribution-id distribution_ID \ --paths "#product:electronics"

    Ini membatalkan SEMUA objek cache yang berisi tag product:electronics, terlepas dari jalur URL-nya.

Persyaratan format tag

Nilai header respon asal:

  • Tag dipisahkan koma dalam nilai header.

  • Spasi depan dan belakang di sekitar setiap tag dipangkas.

  • K tag1,tag2,tag3 edu tag1, tag2, tag3 anya dan valid dan setara.

Nilai tag individual:

  • Karakter ASCII yang terlihat (33—126)

  • Tidak ada karakter kontrol, spasi, atau koma

  • Case-insensitive

  • Maksimal 256 karakter per tag

  • Maksimum 50 tag per objek (tag tambahan diabaikan)

Mengkonfigurasi distribusi untuk pembatalan tag

Untuk mengaktifkan pembatalan tag, tambahkan a 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-id distribution_ID \ --paths "#user1" # Invalidate objects matching any of multiple tags (OR logic) aws cloudfront create-invalidation \ --distribution-id distribution_ID \ --paths "#user1" "#product-category:electronics" # Mix path and tag invalidations in one batch aws cloudfront create-invalidation \ --distribution-id distribution_ID \ --paths "/index.html" "#user1" "/images/*" "#product-category:electronics"

Memeriksa status pembatalan

Gunakan GetInvalidation untuk memeriksa status. Tanggapan mencakup item jalur dan tag:

aws cloudfront get-invalidation \ --distribution-id distribution_ID \ --id invalidation_ID

Pertimbangan penting

  • Opt-in diperlukan: Pembatalan tag hanya berfungsi pada distribusi yang telah CacheTagConfig dikonfigurasi. Distribusi tanpa konfigurasi ini mengabaikan header tag cache dari asal.

  • Batas pemrosesan tag: CloudFront memproses hingga 50 tag per objek yang di-cache. Jika respon asal berisi lebih dari 50 tag, tag tambahan di luar batas tidak disimpan.

  • Mengubah nama header: Pembatalan tag dicari terhadap konfigurasi saat iniCacheTagConfig. Jika Anda mengubah HeaderName diCacheTagConfig, 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 berikan 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.

  • Mengh CacheTagConfig apus: Saat Anda menghapus CacheTagConfig dari distribusi, CloudFront berhenti mengekstrak tag dari respons asal. Objek cache yang ada dengan tag disajikan secara normal sampai kedaluwarsa atau dibatalkan oleh jalur.

  • Kompatibilitas mundur: Path yang ada dan pembatalan wildcard 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 dengan menggunakan CreateInvalidationForDistributionTenant API.

Contoh kasus penggunaan

Contoh 1: katalog E-commerce produk

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 merek mereka, batalkan semua produk ACME sekaligus:

aws cloudfront create-invalidation \ --distribution-id distribution_ID \ --paths "#brand:acme"

Contoh 2: platform User-generated konten

Platform menandai konten yang di-cache dengan ID pengguna pemilik:

x-amz-meta-cache-tag: user:12345, content-type:image

Saat pengguna menutup akunnya, batalkan semua kontennya setelah Anda menghapusnya dari sumber:

aws cloudfront create-invalidation \ --distribution-id distribution_ID \ --paths "#user:12345"

Contoh 3: Pembuatan versi konten

Sebuah CMS menandai konten 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-id distribution_ID \ --paths "#version:v2"