

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

# Restrizioni su tutte le funzioni edge
<a name="edge-function-restrictions-all"></a>

Le seguenti restrizioni si applicano a tutte le funzioni edge, sia CloudFront Functions che Lambda @Edge.

**Topics**
+ [Account AWS proprietà](#function-restrictions-account-ownership)
+ [Combinazione di CloudFront funzioni con Lambda @Edge](#function-restrictions-combining-functions)
+ [Codici di stato HTTP](#function-restrictions-status-codes)
+ [Intestazioni HTTP](#function-restrictions-headers)
+ [Stringhe di query](#function-restrictions-query-strings)
+ [URI](#function-restrictions-uri)
+ [Codifica di URI, stringa di query e intestazioni](#function-restrictions-encoding)
+ [Microsoft Smooth Streaming](#function-restrictions-microsoft-smooth-streaming)
+ [Assegnazione di tag](#function-restrictions-tagging)

## Account AWS proprietà
<a name="function-restrictions-account-ownership"></a>

Per associare una funzione periferica a una CloudFront distribuzione, la funzione e la distribuzione devono essere di proprietà della stessa Account AWS.

## Combinazione di CloudFront funzioni con Lambda @Edge
<a name="function-restrictions-combining-functions"></a>

Per un determinato comportamento della cache, si applicano le seguenti restrizioni:
+ Ogni tipo di evento (richiesta del visualizzatore, richiesta dell'origine, risposta dell'origine e risposta del visualizzatore) può avere una sola associazione di funzioni edge.
+ Non è possibile combinare CloudFront Functions e Lambda @Edge negli eventi del visualizzatore (richiesta e risposta del visualizzatore).

Sono consentite tutte le altre combinazioni di funzioni edge. Nella tabella seguente sono descritte le combinazioni consentite.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonCloudFront/latest/DeveloperGuide/edge-function-restrictions-all.html)

## Codici di stato HTTP
<a name="function-restrictions-status-codes"></a>

CloudFront non richiama le funzioni edge per gli eventi di risposta del visualizzatore quando l'origine restituisce il codice di stato HTTP 400 o superiore.

Le funzioni Lambda@Edge per gli eventi di risposta di origine vengono richiamate per *tutte* le risposte di origine, incluso quando l'origine restituisce il codice di stato HTTP 400 o superiore. Per ulteriori informazioni, consulta [Aggiornamento delle risposte HTTP nei trigger di risposta origine](lambda-generating-http-responses.md#lambda-updating-http-responses).

## Intestazioni HTTP
<a name="function-restrictions-headers"></a>

Alcune intestazioni HTTP non sono consentite, il che significa che non sono esposte a funzioni edge e che le funzioni non possono aggiungerle. Altre intestazioni sono di sola lettura, il che significa che possono essere lette dalle funzioni ma non possono essere aggiunte, modificate o eliminate.

**Topics**
+ [Intestazioni non consentite](#function-restrictions-disallowed-headers)
+ [Intestazioni di sola lettura](#function-restrictions-read-only-headers)

### Intestazioni non consentite
<a name="function-restrictions-disallowed-headers"></a>

Le seguenti intestazioni HTTP non sono esposte alle funzioni edge e le funzioni non possono aggiungerle. Se la funzione aggiunge una di queste intestazioni, non riesce la CloudFront convalida e CloudFront restituisce il codice di stato HTTP 502 (Bad Gateway) al visualizzatore.
+ `Connection` 
+ `Expect`
+ `Keep-Alive`
+ `Proxy-Authenticate`
+ `Proxy-Authorization`
+ `Proxy-Connection`
+ `Trailer`
+ `Upgrade`
+ `X-Accel-Buffering`
+ `X-Accel-Charset`
+ `X-Accel-Limit-Rate`
+ `X-Accel-Redirect`
+ `X-Amz-Cf-*`
+ `X-Amzn-Auth`
+ `X-Amzn-Cf-Billing`
+ `X-Amzn-Cf-Id`
+ `X-Amzn-Cf-Xff`
+ `X-Amzn-Errortype`
+ `X-Amzn-Fle-Profile`
+ `X-Amzn-Header-Count`
+ `X-Amzn-Header-Order`
+ `X-Amzn-Lambda-Integration-Tag`
+ `X-Amzn-RequestId`
+ `X-Cache`
+ `X-Edge-*`
+ `X-Forwarded-Proto`
+ `X-Real-IP`

### Intestazioni di sola lettura
<a name="function-restrictions-read-only-headers"></a>

Le intestazioni di seguito sono di sola lettura. La funzione può leggerle e utilizzarle come input per la logica della funzione, ma non può modificarne i valori. Se la funzione aggiunge o modifica un'intestazione di sola lettura, la richiesta non viene CloudFront convalidata e CloudFront restituisce il codice di stato HTTP 502 (Bad Gateway) al visualizzatore.

#### Intestazioni di sola lettura per eventi di richiesta del visualizzatore
<a name="function-restrictions-read-only-headers-viewer-request"></a>

Le seguenti intestazioni sono di sola lettura per gli eventi di richiesta del visualizzatore.
+ `CDN-Loop`
+ `Content-Length`
+ `Host`
+ `Transfer-Encoding`
+ `Via`

#### Intestazioni di sola lettura negli eventi di richiesta di origine (solo Lambda@Edge)
<a name="function-restrictions-read-only-headers-origin-request"></a>

Le seguenti intestazioni sono di sola lettura negli eventi di richiesta di origine, che esistono solo in Lambda @Edge.
+ `Accept-Encoding`
+ `CDN-Loop`
+ `Content-Length`
+ `If-Modified-Since`
+ `If-None-Match`
+ `If-Range`
+ `If-Unmodified-Since`
+ `Transfer-Encoding`
+ `Via`

#### Intestazioni di sola lettura negli eventi di risposta di origine (solo Lambda@Edge)
<a name="function-restrictions-read-only-headers-origin-response"></a>

Le seguenti intestazioni sono di sola lettura negli eventi di risposta di origine, che esistono solo in Lambda@Edge.
+ `Transfer-Encoding`
+ `Via`

#### Intestazioni di sola lettura per eventi di risposta del visualizzatore
<a name="function-restrictions-read-only-headers-viewer-response"></a>

Le seguenti intestazioni sono di sola lettura negli eventi di risposta del visualizzatore sia per Functions che per Lambda CloudFront @Edge.
+ `Warning`
+ `Via`

Le seguenti intestazioni sono di sola lettura per gli eventi di risposta del visualizzatore per Lambda@Edge.
+ `Content-Length`
+ `Content-Encoding`
+ `Transfer-Encoding`

## Stringhe di query
<a name="function-restrictions-query-strings"></a>

Le restrizioni seguenti si applicano alle funzioni che leggono, aggiornano o creano una stringa di query in un URI di richiesta.
+ (Solo Lambda@Edge) Per accedere alla stringa di query in una funzione di richiesta di origine o di risposta di origine, la policy della cache o la policy di richiesta di origine deve essere impostata su **Tutti**per **Stringhe di query**.
+ Una funzione può creare o aggiornare una stringa di query per gli eventi di richiesta del visualizzatore e richiesta di origine (gli eventi di richiesta origine esistono solo in Lambda@Edge).
+ Una funzione può leggere una stringa di query ma non può crearne o aggiornarne una per gli eventi di risposta origine e di risposta del visualizzatore (gli eventi di risposta origine esistono solo in Lambda@Edge).
+ Se una funzione crea o aggiorna una stringa di query, si applicano le seguenti restrizioni:
  + La stringa di query aggiornata non può includere spazi, caratteri di controllo o l'identificatore di frammento (`#`).
  + La dimensione totale dell'URI, compresa la stringa di query, deve essere inferiore a 8.192 caratteri.
  + Ti consigliamo di utilizzare la codifica percentuale per l'URI e la stringa di query. Per ulteriori informazioni, consulta [Codifica di URI, stringa di query e intestazioni](#function-restrictions-encoding).

## URI
<a name="function-restrictions-uri"></a>

Se una funzione modifica l'URI per una richiesta, il comportamento cache per la richiesta o l'origine a cui la richiesta viene inoltrata non viene modificato.

La dimensione totale dell'URI, compresa la stringa di query, deve essere inferiore a 8.192 caratteri.

## Codifica di URI, stringa di query e intestazioni
<a name="function-restrictions-encoding"></a>

I valori dell’URI, della stringa di query e delle intestazioni passati alle funzioni edge sono codificati UTF-8. La funzione deve utilizzare la codifica UTF-8 per i valori dell’URI, della stringa di query e delle intestazioni restituiti. La codifica percentuale è compatibile con la codifica UTF-8.

L'elenco seguente spiega come CloudFront gestisce la codifica per l'URI, la stringa di query e le intestazioni:
+ Quando i valori nella richiesta sono codificati in UTF-8, CloudFront li inoltra alla funzione senza modificarli.
+ Quando i valori nella richiesta sono codificati in [ISO-8859-1, CloudFront converte i valori nella codifica UTF-8 prima di inoltrarli](https://en.wikipedia.org/wiki/ISO/IEC_8859-1) alla tua funzione.
+ Quando i valori nella richiesta vengono codificati utilizzando un'altra codifica di caratteri, CloudFront presuppone che siano codificati in ISO-8859-1 e tenta di convertirli da ISO-8859-1 a UTF-8.
**Importante**  
I caratteri convertiti potrebbero essere un'interpretazione non accurata dei valori nella richiesta originale. In tal caso, una funzione o la tua origine potrebbe produrre un risultato inatteso.

I valori per l'URI, la stringa di query e le intestazioni che vengono inoltrati all'origine dipendono dal fatto che una funzione modifichi i valori: CloudFront 
+ Se una funzione non modifica l'URI, la stringa di query o l'intestazione, CloudFront inoltra i valori ricevuti nella richiesta all'origine.
+ Se una funzione modifica l'URI, la stringa di query o l'intestazione, CloudFront inoltra i valori con codifica UTF-8.

## Microsoft Smooth Streaming
<a name="function-restrictions-microsoft-smooth-streaming"></a>

Non puoi utilizzare le funzioni edge con una CloudFront distribuzione che stai utilizzando per lo streaming di file multimediali che hai transcodificato nel formato Microsoft Smooth Streaming.

## Assegnazione di tag
<a name="function-restrictions-tagging"></a>

Non è possibile aggiungere tag alle funzioni edge. Per ulteriori informazioni sull'aggiunta di tag, consulta CloudFront. [Tagging di una distribuzione](tagging.md)