

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

# Gestione della configurazione della cache per un'app
<a name="caching"></a>

Amplify utilizza CloudFront Amazon per gestire la configurazione di caching per le applicazioni ospitate. A ciascuna app viene applicata una configurazione cache per ottimizzare le prestazioni.

Il 13 agosto 2024, Amplify ha rilasciato miglioramenti all'efficienza della memorizzazione nella cache per le applicazioni. Per ulteriori informazioni, consulta Miglioramenti della memorizzazione nella [cache CDN per migliori prestazioni delle app](https://aws.amazon.com/blogs/mobile/cdn-caching-improvements-for-better-app-performance-with-aws-amplify-hosting/) con hosting. AWS Amplify 

La tabella seguente riassume il supporto di Amplify per comportamenti specifici di memorizzazione nella cache prima e dopo il rilascio dei miglioramenti della memorizzazione nella cache.


| Comportamento della cache | Supporto precedente | Con miglioramenti della memorizzazione nella cache | 
| --- | --- | --- | 
| Puoi aggiungere intestazioni personalizzate per un'app nella console Amplify o in un file. `customHeaders.yaml` Una delle intestazioni che puoi sovrascrivere è. `Cache-Control` Per ulteriori informazioni, consulta [Impostazione di intestazioni personalizzate per un'app Amplify](custom-headers.md). | Sì | Sì | 
|  Amplify rispetta le intestazioni definite in `customHeaders.yaml` un file e hanno `Cache-Control` la precedenza sulle impostazioni della cache predefinite di Amplify.  | Sì  | Sì | 
|  Amplify rispetta le intestazioni impostate all'interno `Cache-Control` del framework di un'applicazione per le rotte dinamiche (ad esempio, le rotte SSR Next.js). Se nel file dell'app è impostata un'`Cache-Control`intestazione, questa ha la precedenza sulle impostazioni del `customHeaders.yaml` file. `next.config.js`  |  Sì   |  Sì  | 
| Ogni nuova distribuzione CI/CD dell'app cancella la cache. |  Sì   |  Sì  | 
|  Puoi attivare la modalità prestazioni per un'app.  | Sì | NoL'impostazione della modalità prestazioni non è più disponibile nella console Amplify. Tuttavia, puoi creare un'`Cache-Control`intestazione che imposta la direttiva. `s-maxage` Per istruzioni, consulta [Utilizzo dell'intestazione Cache-Control per aumentare le prestazioni dell'app](Using-headers-to-control-cache-duration.md). | 

La tabella seguente elenca le modifiche ai valori predefiniti per impostazioni specifiche della cache.


| Impostazione della cache | Valore predefinito precedente | Valore predefinito con miglioramenti della memorizzazione nella cache | 
| --- | --- | --- | 
|  Durata della cache per le risorse statiche  |  Due secondi  |  Un anno  | 
|  Durata della cache per le risposte del proxy inverso  |  Due secondi  |  Zero secondi (nessuna memorizzazione nella cache)  | 
|  Tempo massimo di vita (TTL)  |  Dieci minuti  |  Un anno  | 

Per ulteriori informazioni su come Amplify determina la configurazione di memorizzazione nella cache da applicare a un'applicazione e istruzioni sulla gestione della configurazione delle chiavi della cache, consulta i seguenti argomenti.

**Topics**
+ [In che modo Amplify applica la configurazione della cache a un'app](cache-configuration-type.md)
+ [Gestione dei cookie della chiave cache](cache-key-cookies.md)
+ [Utilizzo dell'intestazione Cache-Control per aumentare le prestazioni dell'app](Using-headers-to-control-cache-duration.md)

# In che modo Amplify applica la configurazione della cache a un'app
<a name="cache-configuration-type"></a>

Per gestire la memorizzazione nella cache della tua app, Amplify determina il tipo di contenuto che viene fornito esaminando il tipo di piattaforma dell'app e le regole di riscrittura. Per `Compute` le app, Amplify esamina anche le regole di routing nel manifesto di distribuzione.

**Nota**  
Il tipo di piattaforma dell'app viene impostato da Amplify Hosting durante la distribuzione. Un'app SSG (statica) è impostata sul tipo di piattaforma. `WEB` Un'app SSR (Next.js 12 o successiva) è impostata sul tipo di piattaforma. `WEB_COMPUTE`

Amplify identifica i seguenti quattro tipi di contenuti e applica la policy di cache gestita specificata.

**Statico**  
Il contenuto fornito dalle app con la `WEB` piattaforma o i percorsi statici in un'app. `WEB_COMPUTE`  
Questo contenuto utilizza la politica Amplify-StaticContent della cache.

**Ottimizzazione delle immagini**  
Le immagini servite dai `ImageOptimization` percorsi in un'`WEB_COMPUTE`app.  
Questo contenuto utilizza la politica Amplify-ImageOptimization della cache.

**Calcolo**  
Il contenuto servito dai `Compute` percorsi in un'`WEB_COMPUTE`app. Ciò include tutti i contenuti renderizzati lato server (SSR).  
Questo contenuto utilizza la politica Amplify-Default o Amplify-DefaultNoCookies cache a seconda del `cacheConfig.type` valore impostato su Amplify. `App`

**Proxy inverso**  
Il contenuto servito dai percorsi che corrispondono a una regola personalizzata di riscrittura del proxy inverso. Per ulteriori informazioni sulla creazione di questa regola personalizzata, consulta il [Riscrittura inversa del proxy](redirect-rewrite-examples.md#reverse-proxy-rewrite) capitolo *Utilizzo dei reindirizzamenti*.  
Questo contenuto utilizza la politica Amplify-Default o Amplify-DefaultNoCookies cache a seconda del `cacheConfig.type` valore impostato su Amplify. `App`

## Comprensione delle politiche di cache gestita di Amplify
<a name="managed-cache-policies-amplify"></a>

Amplify utilizza le seguenti politiche di cache gestita predefinite per ottimizzare la configurazione predefinita della cache per le applicazioni ospitate.
+ Amplify-Default
+ Amplify-DefaultNoCookies
+ Amplify-ImageOptimization
+ Amplify-StaticContent

### Impostazioni della politica di cache gestita di Amplify-Default
<a name="managed-cache-policy-amplify-default"></a>

[Visualizza questa politica nella console CloudFront ](https://console.aws.amazon.com/cloudfront/v4/home#/policies/cache/4d1d2f1d-3a71-49ad-9e08-7ea5d843a556)

Questa policy è progettata per l'utilizzo con un'origine che è una Web App [AWS Amplify](https://aws.amazon.com/amplify/).

Questa policy ha le seguenti impostazioni:
+ **TTL minimo** = 0 secondi
+ **TTL massimo:** 31536000 secondi (un anno)
+ **TTL di default** = 0 secondi
+ **Intestazioni incluse nella chiave cache:**
  + `Authorization`
  + `Accept`
  + `CloudFront-Viewer-Country`
  + `Host`
+ **Cookie inclusi nella chiave cache:** tutti i cookie sono inclusi.
+ **Stringhe di query incluse nella chiave cache:** tutte le stringhe di query sono incluse.
+ Impostazione **cache degli oggetti compressi: Gzip e Brotli abilitati**.

### Amplify: impostazioni della politica della cache gestita da Amplify DefaultNoCookies
<a name="managed-cache-policy-amplify-defaultnocookies"></a>

[Visualizza questa politica nella console CloudFront ](https://console.aws.amazon.com/cloudfront/v4/home#/policies/cache/a6bad946-36c3-4c33-aa98-362c74a7fb13)

Questa policy è progettata per l'utilizzo con un'origine che è una Web App [AWS Amplify](https://aws.amazon.com/amplify/).

Questa policy ha le seguenti impostazioni:
+ **TTL minimo** = 0 secondi
+ **TTL massimo:** 31536000 secondi (un anno)
+ **TTL di default** = 0 secondi
+ **Intestazioni incluse nella chiave cache:**
  + `Authorization`
  + `Accept`
  + `CloudFront-Viewer-Country`
  + `Host`
+ **Cookie inclusi nella chiave cache:** non sono inclusi cookie.
+ **Stringhe di query incluse nella chiave cache:** tutte le stringhe di query sono incluse.
+ **Impostazione cache degli oggetti compressi:** Gzip e Brotli abilitati.

### Amplify: impostazioni della politica della cache gestita da Amplify ImageOptimization
<a name="managed-cache-policy-amplify-imageoptimization"></a>

[Visualizza questa politica nella console CloudFront ](https://console.aws.amazon.com/cloudfront/v4/home#/policies/cache/1c6db51a-a33f-469a-8245-dae26771f530)

Questa policy è progettata per l'utilizzo con un'origine che è una Web App [AWS Amplify](https://aws.amazon.com/amplify/).

Questa policy ha le seguenti impostazioni:
+ **TTL minimo** = 0 secondi
+ **TTL massimo:** 31536000 secondi (un anno)
+ **TTL di default** = 0 secondi
+ **Intestazioni incluse nella chiave cache:**
  + `Authorization`
  + `Accept`
  + `Host`
+ **Cookie inclusi nella chiave cache:** non sono inclusi cookie.
+ **Stringhe di query incluse nella chiave cache:** tutte le stringhe di query sono incluse.
+ **Impostazione cache degli oggetti compressi:** Gzip e Brotli abilitati.

### Amplify: impostazioni della politica della cache gestita da Amplify StaticContent
<a name="managed-cache-policy-amplify-staticcontent"></a>

[Visualizza questa politica nella console CloudFront ](https://console.aws.amazon.com/cloudfront/v4/home#/policies/cache/7e5fad67-ee98-4ad0-b05a-394999eefc1a)

Questa policy è progettata per l'utilizzo con un'origine che è una Web App [AWS Amplify](https://aws.amazon.com/amplify/).

Questa policy ha le seguenti impostazioni:
+ **TTL minimo** = 0 secondi
+ **TTL massimo:** 31536000 secondi (un anno)
+ **TTL di default** = 0 secondi
+ **Intestazioni incluse nella chiave cache:**
  + `Authorization`
  + `Host`
+ **Cookie inclusi nella chiave cache:** non sono inclusi cookie.
+ **Stringhe di query incluse nella chiave della cache:** non sono incluse stringhe di query.
+ **Impostazione cache degli oggetti compressi:** Gzip e Brotli abilitati.

# Gestione dei cookie della chiave cache
<a name="cache-key-cookies"></a>

Quando distribuisci la tua app su Amplify, puoi scegliere se includere o escludere i cookie nella chiave cache. Nella console Amplify, questa impostazione è specificata nella pagina **Custom headers and cache utilizzando l'**interruttore delle impostazioni **del** tasto Cache. Per istruzioni, consulta [Inclusione o esclusione dei cookie dalla chiave cache](#set-cache-key-cookies).

**Includi i cookie nella chiave cache**  
Con questa impostazione, Amplify sceglie automaticamente una configurazione cache ottimale per l'app in base al tipo di contenuto che viene fornito. È necessario scegliere esplicitamente questo tipo di configurazione della cache.  
Se si utilizza il SDKs o il AWS CLI, questa impostazione corrisponde `cacheConfig.type` all'impostazione `AMPLIFY_MANAGED` con `CreateApp` o `UpdateApp` APIs.

**Escludi i cookie dalla chiave cache**  
Questa è la configurazione predefinita della cache. Questa configurazione della cache è simile alla `AMPLIFY_MANAGED` configurazione, tranne per il fatto che esclude tutti i cookie dalla chiave cache.   
La scelta di escludere i cookie dalla chiave cache può comportare migliori prestazioni della cache. Tuttavia, prima di scegliere questa configurazione della cache, è importante considerare se l'app utilizza i cookie per fornire contenuti dinamici.  
Se si utilizza il SDKs o il AWS CLI, questa impostazione corrisponde all'impostazione `cacheConfig.type` di to `AMPLIFY_MANAGED_NO_COOKIES` con `CreateApp` o `UpdateApp` APIs.

Per ulteriori informazioni sulla chiave della cache, consulta [Understand the cache key](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-the-cache-key.html) nella *Amazon CloudFront Developer Guide;*.

## Inclusione o esclusione dei cookie dalla chiave cache
<a name="set-cache-key-cookies"></a>

Puoi impostare la configurazione dei cookie della chiave cache per un'app nella console Amplify oppure SDKs. AWS CLI

Utilizza la procedura seguente per specificare se includere o escludere i cookie dalla chiave cache quando distribuisci una nuova app utilizzando la console Amplify.

**Per impostare la configurazione dei cookie della chiave cache durante la distribuzione di un'app su Amplify**

1. Accedi Console di gestione AWS e apri la console [Amplify.](https://console.aws.amazon.com/amplify/)

1. Nella pagina **Tutte le app**, scegli **Crea nuova** app.

1. **Nella pagina **Inizia a creare con Amplify**, scegli il tuo provider di repository Git, quindi scegli Avanti.**

1. Nella pagina **Aggiungi ramo del repository**, procedi come segue:

   1. Seleziona il nome del repository da connettere.

   1. Seleziona il nome del ramo del repository da connettere.

   1. Scegli **Next (Successivo)**.

1. Se l'app richiede un ruolo di servizio IAM, puoi consentire ad Amplify Hosting compute di creare automaticamente un ruolo di servizio per te oppure puoi specificare un ruolo che hai creato tu.
   + Per consentire ad Amplify di creare automaticamente un ruolo e associarlo alla tua app:

     1. Scegliere **Crea e utilizza un nuovo ruolo di servizio**.
   + Per allegare un ruolo di servizio creato in precedenza:

     1. Scegli **Usa un ruolo di servizio esistente**.

     1. Seleziona il ruolo da utilizzare dall'elenco.

1. Scegli **Impostazioni avanzate**, quindi individua la sezione **Impostazioni chiave della cache**.

1. Scegli **Mantieni i cookie nella chiave cache** o **Rimuovi i cookie dalla chiave cache**. La schermata seguente mostra l'interruttore delle **impostazioni del tasto Cache** nella console.  
![\[Schermata dell'interruttore delle impostazioni del tasto Cache nella console Amplify.\]](http://docs.aws.amazon.com/it_it/amplify/latest/userguide/images/amplify-caching-1.png)

1. Scegli **Next (Successivo)**.

1. **Nella pagina **Revisione**, scegli Salva e distribuisci.**

## Modifica della configurazione dei cookie della chiave cache per un'app
<a name="change-cache-cookies"></a>

Puoi modificare la configurazione dei cookie della chiave cache per un'app già distribuita su Amplify. Utilizza la seguente procedura per modificare se includere o escludere i cookie dalla chiave cache per un'app che utilizza la console Amplify.

**Per modificare la configurazione dei cookie della chiave cache per un'app distribuita**

1. Accedi Console di gestione AWS e apri la console [Amplify.](https://console.aws.amazon.com/amplify/)

1. Nella pagina **Tutte le app**, scegli l'applicazione che desideri aggiornare.

1. Nel pannello di navigazione, scegli **Hosting**, quindi scegli **Intestazioni e cache personalizzate**.

1. **Nella pagina **Intestazioni e cache personalizzate**, individua la sezione **Impostazioni della chiave cache** e scegli Modifica.**

1. Scegli **Mantieni i cookie nella chiave cache** o **Rimuovi i cookie dalla chiave cache**. La schermata seguente mostra l'interruttore delle **impostazioni del tasto Cache** nella console.  
![\[Schermata dell'interruttore delle impostazioni del tasto Cache nella console Amplify.\]](http://docs.aws.amazon.com/it_it/amplify/latest/userguide/images/amplify-caching-1.png)

1. Scegli **Save** (Salva).

# Utilizzo dell'intestazione Cache-Control per aumentare le prestazioni dell'app
<a name="Using-headers-to-control-cache-duration"></a>

L'architettura di hosting predefinita di Amplify ottimizza l'equilibrio tra prestazioni di hosting e disponibilità dell'implementazione. Per la maggior parte dei clienti, consigliamo di utilizzare l'architettura predefinita.

Se hai bisogno di un controllo più preciso sulle prestazioni di un'app, puoi impostare manualmente l'`Cache-Control`intestazione HTTP per ottimizzare le prestazioni di hosting mantenendo i contenuti memorizzati nella cache all'estremità della rete di distribuzione dei contenuti (CDN) per un intervallo più lungo.

Le `Cache-Control` intestazioni `max-age` e le `s-maxage` direttive HTTP influiscono sulla durata della memorizzazione nella cache dei contenuti dell'app. La `max-age` direttiva indica al browser per quanto tempo (in secondi) desiderate che il contenuto rimanga nella cache prima di essere aggiornato dal server di origine. La `s-maxage` direttiva sostituisce `max-age` e consente di specificare per quanto tempo (in secondi) il contenuto deve rimanere sull'edge CDN prima che venga aggiornato dal server di origine.

Le app ospitate con Amplify rispettano `Cache-Control` le intestazioni inviate dall'origine, a meno che non le sovrascriviate con intestazioni personalizzate definite dall'utente. Amplify `Cache-Control` applica solo intestazioni personalizzate per risposte di successo con un codice di stato. `200 OK` Ciò impedisce che le risposte agli errori vengano memorizzate nella cache e inviate ad altri utenti che effettuano la stessa richiesta.

Puoi modificare manualmente la `s-maxage` direttiva per avere un maggiore controllo sulle prestazioni e sulla disponibilità di implementazione della tua app. Ad esempio, per modificare il periodo di tempo in cui i contenuti rimangono memorizzati nella cache periferica, puoi impostare manualmente il time to live (TTL) eseguendo l'aggiornamento `s-maxage` a un valore diverso dal valore predefinito 31536000 secondi (un anno).

Puoi definire intestazioni personalizzate per un'app nella sezione **Intestazioni personalizzate** della console Amplify. Per un esempio del formato, vedi. YAML [Impostazione delle intestazioni personalizzate di Cache-Control](setting-custom-headers.md#example-cache-headers)

Utilizzate la seguente procedura per impostare la `s-maxage` direttiva in modo da mantenere i contenuti memorizzati nella cache della rete CDN per 24 ore.

**Per impostare un'intestazione personalizzata Cache-Control**

1. Accedi Console di gestione AWS e apri la console [Amplify.](https://console.aws.amazon.com/amplify/)

1. Scegli l'app per cui impostare intestazioni personalizzate.

1. Nel pannello di navigazione, scegli **Hosting**, **Intestazioni personalizzate**.

1. **Nella pagina **Intestazioni personalizzate**, scegli Modifica.**

1. Nella finestra **Modifica intestazioni personalizzate**, inserisci le informazioni per l'intestazione personalizzata come segue:

   1. Per`pattern`, inserisci **\$1\$1/\$1** per tutti i percorsi.

   1. In `key`, immettere **Cache-Control**.

   1. In `value`, immettere **s-maxage=86400**.

1. Scegli **Save** (Salva).

1. Ridistribuisci l'app per applicare la nuova intestazione personalizzata.