

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invalidazione del contenuto tramite tag di cache
<a name="invalidation-by-tags"></a>

Amazon CloudFront supporta l'invalidazione dei tag, che consente di invalidare gli oggetti memorizzati nella cache in base a tag semantici anziché a percorsi URL. Questo ti offre un controllo flessibile sull'invalidazione della cache senza che la struttura degli URL corrisponda alla tua strategia di invalidazione.

## Come funziona l'invalidazione dei tag
<a name="invalidation-by-tags-how-it-works"></a>

1. **Configura la tua distribuzione**: aggiungi una ` CacheTagConfig` alla tua distribuzione specificando il nome dell'intestazione HTTP che la tua origine utilizza per restituire i tag della cache.

1. **Etichetta gli oggetti all'origine: quando restituisci** un oggetto che desideri memorizzare nella cache con tag, configura l'origine per includere l'intestazione specificata nelle risposte HTTP con valori di tag separati da virgole.

   ```
   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
   ```
**Nota**  
Per le origini S3, puoi allegare tag cache agli oggetti S3 come metadati. Puoi aggiungere una voce di metadati con una chiave a tua scelta (esempio:` cache-tag`) e un elenco di tag separati da virgole come valore (esempio:). `product:electronics, category:tv, brand:example`  
S3 presenta i metadati degli oggetti come intestazioni di risposta con il prefisso` x-amz-meta-<Key>`, quindi una chiave di metadati di verrebbe restituita come intestazione. `cache-tag` `x-amz-meta-cache-tag` Puoi impostare il tuo to per abilitare l'` HeaderName`invio di invalidazioni `CacheTagConfig` ` x-amz-meta-cache-tag` a questi tag.
**Nota**  
In alternativa, puoi associare una funzione Lambda @Edge di risposta all'origine al comportamento della cache per aggiungere intestazioni di tag della cache. Se si utilizza Lambda @Edge, non è necessario che il nome dell'intestazione segua il formato. `x-amz-meta-<Key>`

1. **Invalida per tag**: utilizza l'` CreateInvalidation`API con il `#` prefisso per invalidare tutti gli oggetti memorizzati nella cache con il tag specificato.

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

   Ciò invalida TUTTI gli oggetti memorizzati nella cache che contengono il tag, indipendentemente dal percorso URL. ` product:electronics`

## Requisiti del formato dei tag
<a name="invalidation-by-tags-format"></a>

 **Valore dell'intestazione di Origin Response:** 
+ I tag sono separati da virgole nel valore dell'intestazione.
+ Gli spazi iniziali e finali attorno a ciascun tag vengono tagliati.
+ Entrambi `tag1, tag2, tag3` sono validi `tag1,tag2,tag3` ed equivalenti.

 **Valori dei tag individuali:** 
+ Caratteri visibili ASCII (33-126)
+ Nessun carattere di controllo, spazi o virgole
+ Senza distinzione tra maiuscole e min
+ Massimo 256 caratteri per tag
+ Massimo 50 tag per oggetto (i tag aggiuntivi vengono ignorati)

## Configurazione di una distribuzione per l'annullamento delle convalide dei tag
<a name="invalidation-by-tags-configuring"></a>

Per abilitare le invalidazioni dei tag, aggiungi una `CacheTagConfig` alla tua configurazione di distribuzione:

```
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"
  }'
```

## Creazione di invalidazioni dei tag
<a name="invalidation-by-tags-creating"></a>

Utilizzate il `#` prefisso nel `--paths` parametro per specificare i 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"
```

## Verifica dello stato di invalidazione
<a name="invalidation-by-tags-checking-status"></a>

Utilizzare `GetInvalidation` per verificare lo stato. La risposta include sia gli elementi del percorso che quelli del tag:

```
aws cloudfront get-invalidation \
  --distribution-id {{distribution_ID}} \
  --id {{invalidation_ID}}
```

## Considerazioni importanti
<a name="invalidation-by-tags-considerations"></a>
+ **Opt-in richiesto**: l'invalidazione dei tag funziona solo sulle distribuzioni configurate. `CacheTagConfig` Le distribuzioni senza questa configurazione ignorano le intestazioni dei tag della cache fin dall'origine.
+ **Limiti di elaborazione dei tag**: CloudFront elabora fino a 50 tag per oggetto memorizzato nella cache. Se una risposta di origine contiene più di 50 tag, i tag aggiuntivi oltre il limite non vengono memorizzati.
+ **Modifica del nome dell'intestazione**: le invalidazioni dei tag vengono confrontate con la configurazione corrente. `CacheTagConfig` Se si modifica l'opzione `HeaderName` in`CacheTagConfig`, le invalidazioni emesse agli oggetti memorizzati nella cache con tag sotto il nome dell'intestazione precedente non verranno più valutate. Se devi cambiare il nome dell'intestazione, inizia a restituire sia le nuove che le vecchie intestazioni dei tag della cache con gli oggetti, quindi esegui un'invalidazione del percorso (ad esempio,`/*`) o invalida i tag esistenti prima di cambiare il nome dell'intestazione per evitare di pubblicare contenuti non aggiornati. Fatto ciò, puoi smettere di inviare l'intestazione dei vecchi tag della cache con i tuoi oggetti.
+ **Rimozione CacheTagConfig: quando rimuovi** ` CacheTagConfig` da una distribuzione, CloudFront interrompe l'estrazione dei tag dalle risposte di origine. Gli oggetti esistenti memorizzati nella cache con tag vengono serviti normalmente fino alla loro scadenza o non vengono invalidati dal percorso.
+ **Compatibilità con le versioni precedenti**: le invalidazioni esistenti di percorsi e caratteri jolly continuano a funzionare invariate. Le invalidazioni dei tag si sommano: puoi utilizzare entrambi i metodi sulla stessa distribuzione.
+ **Tenant di distribuzione**: l'invalidazione dei tag è supportata anche per i tenant di distribuzione tramite l'API. ` CreateInvalidationForDistributionTenant`

## Esempi di casi d'uso
<a name="invalidation-by-tags-examples"></a>

### Esempio 1: catalogo di prodotti per l'e-commerce
<a name="invalidation-by-tags-example-ecommerce"></a>

Un sito di e-commerce contrassegna le pagine di prodotto memorizzate nella cache con prodotto, categoria e marchio:

```
x-amz-meta-cache-tag: category:electronics, brand:acme, product:12345
```

Quando ACME aggiorna il proprio marchio, invalida tutti i prodotti ACME contemporaneamente:

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

### Esempio 2: piattaforma di contenuti generati dagli utenti
<a name="invalidation-by-tags-example-ugc"></a>

Una piattaforma contrassegna i contenuti memorizzati nella cache con l'ID utente del proprietario:

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

Quando un utente chiude il proprio account, invalida tutti i suoi contenuti dopo averli rimossi dall'origine:

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

### Esempio 3: controllo delle versioni dei contenuti
<a name="invalidation-by-tags-example-versioning"></a>

Un CMS contrassegna i contenuti con identificatori di versione:

```
x-amz-meta-cache-tag: version:v2, template:homepage
```

Quando distribuisci una nuova versione, invalida tutti i contenuti della versione 2:

```
aws cloudfront create-invalidation \
  --distribution-id {{distribution_ID}} \
  --paths "#version:v2"
```