

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

# Impostazione di intestazioni personalizzate per un'app Amplify
<a name="custom-headers"></a>

Le intestazioni HTTP personalizzate consentono di specificare le intestazioni per ogni risposta HTTP. Le intestazioni di risposta possono essere utilizzate per scopi di debug, sicurezza e informativi. Puoi specificare le intestazioni nella console Amplify oppure scaricando e modificando il file di un'app e salvandolo nella directory principale `customHttp.yml` del progetto. Per le procedure dettagliate, consulta [Impostazione di intestazioni personalizzate](setting-custom-headers.md).

In precedenza, le intestazioni HTTP personalizzate venivano specificate per un'app modificando le specifiche di build (buildspec) nella console Amplify o scaricando e aggiornando il `amplify.yml` file e salvandolo nella directory principale del progetto. Consigliamo vivamente di migrare le intestazioni personalizzate specificate in questo modo fuori da buildspec e dal file. `amplify.yml` Per istruzioni, consulta [Migrazione delle intestazioni personalizzate fuori dalle specifiche di build e amplify.yml](migrate-custom-headers.md).

**Topics**
+ [Riferimento YAML per intestazioni personalizzate](custom-header-YAML-format.md)
+ [Impostazione di intestazioni personalizzate](setting-custom-headers.md)
+ [Migrazione delle intestazioni personalizzate fuori dalle specifiche di build e amplify.yml](migrate-custom-headers.md)
+ [Requisiti di intestazione personalizzati Monorepo](monorepo-custom-headers.md)

# Riferimento YAML per intestazioni personalizzate
<a name="custom-header-YAML-format"></a>

Specificate le intestazioni personalizzate utilizzando il seguente formato YAML:

```
customHeaders:
  - pattern: '*.json'
    headers:
    - key: 'custom-header-name-1'
      value: 'custom-header-value-1'
    - key: 'custom-header-name-2'
      value: 'custom-header-value-2'
  - pattern: '/path/*'
    headers:
    - key: 'custom-header-name-1'
      value: 'custom-header-value-2'
```

Per un monorepo, usa il seguente formato YAML:

```
applications:
  - appRoot: app1
    customHeaders:
    - pattern: '**/*'
      headers:
      - key: 'custom-header-name-1'
        value: 'custom-header-value-1'
  - appRoot: app2
    customHeaders:
    - pattern: '/path/*.json'
      headers:
      - key: 'custom-header-name-2'
        value: 'custom-header-value-2'
```

Quando aggiungi intestazioni personalizzate alla tua app, specificherai i tuoi valori per quanto segue:

**pattern**  
Le intestazioni personalizzate vengono applicate a tutti i percorsi dei file URL che corrispondono al modello.

**headers**  
Definisce le intestazioni che corrispondono al modello del file.

**Chiave**  
Il nome dell'intestazione personalizzata.

**value**  
Il valore dell'intestazione personalizzata.

[Per ulteriori informazioni sulle intestazioni HTTP, consulta l'elenco delle intestazioni HTTP di Mozilla.](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)

# Impostazione di intestazioni personalizzate
<a name="setting-custom-headers"></a>

Esistono due modi per specificare intestazioni HTTP personalizzate per un'app Amplify. Puoi specificare le intestazioni nella console Amplify oppure puoi specificare le intestazioni scaricando e modificando il file di un'app e salvandolo nella directory principale `customHttp.yml` del progetto.

**Per impostare intestazioni personalizzate per un'app e salvarle nella console**

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**, quindi scegli **Intestazioni personalizzate**.

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

1. Nella finestra **Modifica intestazioni personalizzate**, inserisci le informazioni per le intestazioni personalizzate utilizzando il formato YAML dell'[intestazione personalizzata](custom-header-YAML-format.md).

   1. Per`pattern`, inserisci lo schema da abbinare.

   1. Per`key`, inserisci il nome dell'intestazione personalizzata.

   1. Per`value`, inserisci il valore dell'intestazione personalizzata.

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

1. Ridistribuisci l'app per applicare le nuove intestazioni personalizzate.
   + **Per un' CI/CD app, vai alla filiale da distribuire e scegli Ridistribuisci questa versione.** Puoi anche eseguire una nuova build dal tuo repository Git.
   + Per un'app con distribuzione manuale, distribuisci nuovamente l'app nella console Amplify.

**Per impostare intestazioni personalizzate per un'app e salvarle nella radice del tuo repository**

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**, quindi scegli **Intestazioni personalizzate**.

1. Nella pagina **Intestazioni personalizzate**, scegli **Scarica** YML.

1. Apri il `customHttp.yml` file scaricato nell'editor di codice che preferisci e inserisci le informazioni per le intestazioni personalizzate utilizzando il formato YAML dell'[intestazione personalizzata](custom-header-YAML-format.md).

   1. Per`pattern`, inserisci lo schema da abbinare.

   1. Per`key`, inserisci il nome dell'intestazione personalizzata.

   1. Per`value`, inserisci il valore dell'intestazione personalizzata.

1. Salva il `customHttp.yml` file modificato nella directory principale del progetto. Se stai lavorando con un monorepo, salva il `customHttp.yml` file nella radice del tuo repository.

1. Ridistribuisci l'app per applicare le nuove intestazioni personalizzate.
   + Per un' CI/CD app, esegui una nuova build dal tuo repository Git che includa il nuovo `customHttp.yml` file.
   + Per un'app con distribuzione manuale, distribuisci nuovamente l'app nella console Amplify e includi il nuovo `customHttp.yml` file con gli artefatti che carichi.

**Nota**  
Le intestazioni personalizzate impostate nel `customHttp.yml` file e distribuite nella directory principale dell'app sostituiscono le intestazioni personalizzate definite nella **sezione Intestazioni personalizzate della console Amplify**.

## Esempio di intestazioni personalizzate di sicurezza
<a name="example-security-headers"></a>

Le intestazioni di sicurezza personalizzate consentono di far rispettare l'HTTPS, prevenire gli attacchi XSS e difendere il browser dal clickjacking. Utilizza la seguente sintassi YAML per applicare intestazioni di sicurezza personalizzate alla tua app.

```
customHeaders:
  - pattern: '**'
    headers:
      - key: 'Strict-Transport-Security'
        value: 'max-age=31536000; includeSubDomains'
      - key: 'X-Frame-Options'
        value: 'SAMEORIGIN'
      - key: 'X-XSS-Protection'
        value: '1; mode=block'
      - key: 'X-Content-Type-Options'
        value: 'nosniff'
      - key: 'Content-Security-Policy'
        value: "default-src 'self'"
```

## Impostazione delle intestazioni personalizzate di Cache-Control
<a name="example-cache-headers"></a>

Le app ospitate con Amplify rispettano `Cache-Control` le intestazioni inviate dall'origine, a meno che non le sovrascriviate con intestazioni personalizzate da voi definite. Amplify applica solo le intestazioni personalizzate Cache-Control per risposte riuscite 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 aumentare il periodo di tempo in cui i contenuti rimangono memorizzati nella cache periferica, puoi aumentare manualmente il time to live (TTL) eseguendo l'aggiornamento `s-maxage` a un valore più lungo del valore predefinito di 600 secondi (10 minuti).

Per specificare un valore personalizzato per`s-maxage`, utilizzate il seguente formato YAML. Questo esempio mantiene il contenuto associato memorizzato nella cache periferica per 3600 secondi (un'ora).

```
customHeaders:
  - pattern: '/img/*'
    headers:
      - key: 'Cache-Control' 
        value: 's-maxage=3600'
```

Per ulteriori informazioni sul controllo delle prestazioni delle applicazioni con le intestazioni, consulta. [Utilizzo dell'intestazione Cache-Control per aumentare le prestazioni dell'app](Using-headers-to-control-cache-duration.md)

# Migrazione delle intestazioni personalizzate fuori dalle specifiche di build e amplify.yml
<a name="migrate-custom-headers"></a>

In precedenza, le intestazioni HTTP personalizzate venivano specificate per un'app modificando le specifiche di build nella console Amplify o scaricando e aggiornando `amplify.yml` il file e salvandolo nella directory principale del progetto. Si consiglia vivamente di migrare le intestazioni personalizzate dalle specifiche di build e dal file. `amplify.yml`

Specificate le intestazioni personalizzate nella sezione **Intestazioni personalizzate** della console Amplify o scaricando e modificando il file. `customHttp.yml`

**Per migrare le intestazioni personalizzate archiviate nella console Amplify**

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

1. Scegli l'app su cui eseguire la migrazione personalizzata dell'header.

1. Nel pannello di navigazione, scegli **Hosting**, **Crea impostazioni**. Nella sezione delle **specifiche di build dell'app**, puoi rivedere le specifiche di build dell'app.

1. Scegli **Scarica** per salvare una copia delle specifiche di build correnti. Puoi fare riferimento a questa copia in un secondo momento se hai bisogno di ripristinare le impostazioni.

1. Una volta completato il download, scegli **Modifica**.

1. Prendi nota delle informazioni di intestazione personalizzate nel file, poiché le utilizzerai più avanti nel passaggio 9. **Nella finestra **Modifica**, elimina tutte le intestazioni personalizzate dal file e scegli Salva.**

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 relative alle intestazioni personalizzate che hai eliminato nel passaggio 6.

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

1. Ridistribuisci qualsiasi ramo a cui desideri applicare le nuove intestazioni personalizzate.

**Per migrare le intestazioni personalizzate da amplify.yml a CustomHttp.yml**

1. Passa al file attualmente distribuito nella directory principale dell'app. `amplify.yml`

1. Apri `amplify.yml` nell'editor di codice che preferisci.

1. Prendi nota delle informazioni di intestazione personalizzate nel file, poiché le utilizzerai più avanti nel passaggio 8. Eliminare le intestazioni personalizzate nel file. Salva e chiudi il file.

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 Scarica.**

1. Apri il `customHttp.yml` file scaricato nell'editor di codice che preferisci e inserisci le informazioni per le intestazioni personalizzate da cui hai eliminato `amplify.yml` nel passaggio 3.

1. Salva il `customHttp.yml` file modificato nella directory principale del progetto. Se stai lavorando con un monorepo, salva il file nella radice del tuo repository.

1. Ridistribuisci l'app per applicare le nuove intestazioni personalizzate.
   + Per un' CI/CD app, esegui una nuova build dal tuo repository Git che includa il nuovo `customHttp.yml` file.
   + Per un'app con distribuzione manuale, distribuisci nuovamente l'app nella console Amplify e includi il nuovo `customHttp.yml` file con gli artefatti che carichi.

**Nota**  
Le intestazioni personalizzate impostate nel `customHttp.yml` file e distribuite nella directory principale dell'app sostituiscono le intestazioni personalizzate definite nella **sezione Intestazioni personalizzate della console Amplify**.

# Requisiti di intestazione personalizzati Monorepo
<a name="monorepo-custom-headers"></a>

Quando specifichi intestazioni personalizzate per un'app in un monorepo, tieni presente i seguenti requisiti di configurazione:
+ Esiste un formato YAML specifico per un monorepo. Per la sintassi corretta, vedere. [Riferimento YAML per intestazioni personalizzate](custom-header-YAML-format.md)
+ È possibile specificare intestazioni personalizzate per un'applicazione in un monorepo utilizzando la sezione **Custom header** della console Amplify. È necessario ridistribuire l'applicazione per applicare le nuove intestazioni personalizzate.
+ In alternativa all'utilizzo della console, puoi specificare intestazioni personalizzate per un'app in un monorepo in un file. `customHttp.yml` È necessario salvare il `customHttp.yml` file nella radice del repository e quindi ridistribuire l'applicazione per applicare le nuove intestazioni personalizzate. Le intestazioni personalizzate specificate nel `customHttp.yml` file sovrascrivono le intestazioni personalizzate specificate utilizzando la sezione **Intestazioni personalizzate della console Amplify**.