

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

# Protezione antiinclinazione per le implementazioni Amplify
<a name="skew-protection"></a>

La protezione dall'inclinazione dell'implementazione è disponibile per le applicazioni Amplify per eliminare i problemi di distorsione della versione tra client e server nelle applicazioni Web. Quando applichi la protezione da inclinazione a un'applicazione Amplify, puoi assicurarti che i tuoi client interagiscano sempre con la versione corretta degli asset lato server, indipendentemente dal momento in cui si verifica una distribuzione. 

L'inclinazione della versione è una sfida comune per gli sviluppatori web. Si verifica quando un browser Web esegue una versione obsoleta di un'applicazione e il server ne esegue una nuova. Questa discrepanza può causare comportamenti imprevedibili, errori e un'esperienza negativa per l'utente dell'applicazione. La funzionalità di protezione dalla distorsione dell'implementazione di Amplify associa i client in esecuzione sui browser Web a una distribuzione specifica. Ciò garantisce che Amplify serva sempre le risorse per quella particolare implementazione, mantenendo il client e il server sincronizzati.

La funzione di protezione dall'inclinazione di Amplify può ridurre gli errori per gli utenti dell'applicazione quando si rilasciano nuove distribuzioni. Può anche migliorare l'esperienza degli sviluppatori riducendo il tempo dedicato alla gestione dei problemi di compatibilità con le versioni precedenti e successive.

Dettagli della funzionalità di protezione asimmetrica:

**Tipi di applicazioni supportati**  
È possibile aggiungere la protezione dall'inclinazione alle applicazioni statiche e SSR create con qualsiasi framework supportato da Amplify. Le applicazioni possono essere distribuite da un repository Git o da una distribuzione manuale.  
Non è possibile aggiungere una protezione dall'inclinazione a un'applicazione distribuita `WEB_DYNAMIC` sulla piattaforma (Next.js versione 11 o precedente).

**Durata**  
Per le applicazioni statiche, Amplify offre una settimana di implementazioni. Per le applicazioni SSR, garantiamo una protezione dall'inclinazione per un massimo di otto implementazioni precedenti.

**Costo**  
Non sono previsti costi aggiuntivi per l'aggiunta della protezione da inclinazione a un'applicazione.

**Considerazione delle prestazioni**  
Quando la protezione da inclinazione è abilitata per un'applicazione, Amplify deve aggiornare le configurazioni della cache CDN. Pertanto, dovresti aspettarti che la prima implementazione dopo aver abilitato la protezione da skew richieda fino a dieci minuti.

**Topics**
+ [Configurazione della protezione dall'inclinazione dell'implementazione per un'applicazione Amplify](configure-skew-protection.md)
+ [Come funziona la protezione dall'inclinazione](skew-protection-headers.md)

# Configurazione della protezione dall'inclinazione dell'implementazione per un'applicazione Amplify
<a name="configure-skew-protection"></a>

È possibile aggiungere o rimuovere la protezione dall'inclinazione della distribuzione per un'applicazione utilizzando la console Amplify, il, AWS Command Line Interface o il. SDKs La funzionalità viene applicata a livello di filiale. Solo le nuove distribuzioni, effettuate dopo aver abilitato la protezione dall'inclinazione per una filiale, saranno protette dall'inclinazione.

Per aggiungere o rimuovere la protezione dall'inclinazione della distribuzione utilizzando AWS CLI o SDKs, utilizza i campi e. `CreateBranch.enableSkewProtection` `UpdateBranch.enableSkewProtection` Per ulteriori informazioni, consulta [CreateBranch](https://docs.aws.amazon.com/amplify/latest/APIReference/API_CreateBranch.html)e [UpdateBranch](https://docs.aws.amazon.com/amplify/latest/APIReference/API_UpdateBranch.html)nella documentazione di riferimento dell'*API Amplify.* 

Se desideri rimuovere una distribuzione specifica in modo che non venga più fornita, utilizza l'`DeleteJob`API. Per ulteriori informazioni, consulta la [DeleteJob](https://docs.aws.amazon.com/amplify/latest/APIReference/API_DeleteJob.html)documentazione di riferimento dell'*API Amplify.* 



Al momento, puoi abilitare la protezione dall'inclinazione solo su un'applicazione già distribuita su Amplify Hosting. Usa le seguenti istruzioni per aggiungere una protezione da inclinazione a un ramo utilizzando la console Amplify.

**Abilita la protezione dall'inclinazione per il ramo di un'applicazione Amplify**

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

1. Nella pagina **Tutte le app**, scegli il nome dell'app distribuita su cui attivare la protezione da inclinazione.

1. Nel pannello di navigazione, scegli **Impostazioni app, quindi scegli Impostazioni** **Branch**.

1. Nella sezione **Filiali**, scegli il nome del ramo da aggiornare.

1. Nel menu **Azioni**, scegli **Abilita protezione dall'inclinazione**.

1. Nella finestra di conferma, scegli **Conferma**. La protezione dall'inclinazione è ora abilitata per la filiale.

1. Ridistribuisci il ramo dell'applicazione. Solo le distribuzioni effettuate dopo l'attivazione della protezione da inclinazione sono protette dall'inclinazione.

Utilizza le seguenti istruzioni per rimuovere la protezione da inclinazione da un ramo di un'applicazione utilizzando la console Amplify.

**Rimuovere la protezione dall'inclinazione da un ramo di un'applicazione Amplify**

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

1. Nella pagina **Tutte le app**, scegli il nome dell'app distribuita da cui rimuovere la protezione da inclinazione.

1. Nel pannello di navigazione, scegli **Impostazioni app, quindi scegli Impostazioni** **Branch**.

1. Nella sezione **Filiali**, scegli il nome del ramo da aggiornare.

1. Nel menu **Azioni**, scegli **Disabilita la protezione dall'inclinazione**. La protezione dall'inclinazione è ora disattivata per la filiale e verranno pubblicati solo i contenuti più recenti.

# Come funziona la protezione dall'inclinazione
<a name="skew-protection-headers"></a>

Nella maggior parte dei casi, il comportamento predefinito del cookie \$1dpl soddisferà le tue esigenze di protezione dagli skew. Tuttavia, nei seguenti scenari avanzati, la protezione dall'inclinazione è abilitata meglio utilizzando i parametri `X-Amplify-Dpl` header e query. `dpl`
+ Caricamento del sito Web in più schede del browser contemporaneamente
+ Utilizzo di addetti all'assistenza

Amplify valuta la richiesta in arrivo nel seguente ordine quando determina il contenuto da fornire al client:

1. **`X-Amplify-Dpl`intestazione**: le applicazioni possono utilizzare questa intestazione per indirizzare le richieste a una specifica distribuzione Amplify. Questa intestazione della richiesta può essere impostata utilizzando il valore di. `process.env.AWS_AMPLIFY_DEPLOYMENT_ID`

1. **`dpl`parametro di query**: le applicazioni Next.js imposteranno automaticamente il parametro di query \$1dpl per le richieste agli asset con impronte digitali (file con estensione js e css).

1. **\$1dpl cookie**: è l'impostazione predefinita per tutte le applicazioni protette da skew. Per un browser specifico, lo stesso cookie viene inviato per ogni scheda o istanza del browser che interagisce con un dominio.

   Tieni presente che se in diverse schede del browser sono caricate versioni diverse di un sito Web, il cookie \$1dpl viene condiviso da tutte le schede. In questo scenario, non è possibile ottenere una protezione totale dall'inclinazione con il cookie \$1dpl e dovresti prendere in considerazione l'utilizzo dell'intestazione per la protezione dall'inclinazione. `X-Amplify-Dpl`

## X-Amplify-Dpl esempio di intestazione
<a name="skew-protection-header-example"></a>

L'esempio seguente mostra il codice per una pagina SSR Next.js che accede alla protezione dall'inclinazione tramite l'intestazione. `X-Amplify-Dpl` La pagina esegue il rendering del contenuto in base a uno dei suoi percorsi api. La distribuzione da servire al percorso api viene specificata utilizzando l'`X-Amplify-Dpl`intestazione, che è impostata sul valore di. `process.env.AWS_AMPLIFY_DEPLOYMENT_ID`

```
import { useEffect, useState } from 'react';

export default function MyPage({deploymentId}) {
    const [data, setData] = useState(null);

    useEffect(() => {
        fetch('/api/hello', {
            headers: {
                'X-Amplify-Dpl': process.env.AWS_AMPLIFY_DEPLOYMENT_ID
            },
        })
        .then(res => res.json())
        .then(data => setData(data))
        .catch(error => console.error("error", error)) 
    }, []);

    return <div>
        {data ? JSON.stringify(data) : "Loading ... " }
    </div>
}
```