Restrizioni su Lambda@Edge - Amazon CloudFront

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 Lambda@Edge

A Lambda@Edge si applicano le seguenti restrizioni.

Per informazioni sulle quote, consulta Quote di Lambda@Edge.

Risoluzione DNS

CloudFront esegue una risoluzione DNS sul nome di dominio di origine prima di eseguire la funzione Lambda @Edge della richiesta di origine. Se il servizio DNS per il tuo dominio presenta problemi e non CloudFront riesce a risolvere il nome di dominio per ottenere l'indirizzo IP, la funzione Lambda @Edge non verrà richiamata. CloudFrontrestituirà un codice di stato HTTP 502 (Bad Gateway) al client. Per ulteriori informazioni, consulta Errore DNS (NonS3OriginDnsError).

Se la logica della funzione modifica il nome di dominio di origine, CloudFront eseguirà un'altra risoluzione DNS sul nome di dominio aggiornato al termine dell'esecuzione della funzione.

Per ulteriori informazioni sulla gestione del failover DNS, consulta Configurazione di un failover DNS nella Guida per gli sviluppatori di Amazon Route 53.

Codici di stato HTTP

Le funzioni Lambda @Edge per gli eventi di risposta del visualizzatore non possono modificare il codice di stato HTTP della risposta, indipendentemente dal fatto che la risposta provenga dall'origine o dalla CloudFront cache.

Versione delle funzioni Lambda

È necessario utilizzare una versione numerata della funzione Lambda, non $LATEST né alias.

Regione Lambda

La funzione Lambda deve trovarsi nella regione Stati Uniti orientali (Virginia settentrionale).

Autorizzazioni del ruolo Lambda

Il ruolo di esecuzione IAM associato alla funzione Lambda deve consentire ai principali del servizio lambda.amazonaws.com e edgelambda.amazonaws.com di assumere il ruolo. Per ulteriori informazioni, consulta Configurazione di ruoli e autorizzazioni IAM per Lambda@Edge.

Caratteristiche di Lambda

Le seguenti funzionalità Lambda non sono supportate da Lambda@Edge:

Runtime supportati

Lambda@Edge supporta le versioni più recenti dei runtime Node.js e Python. Per un elenco delle versioni supportate e delle relative date future di obsolescenza, consulta Runtime supportati nella Guida per gli sviluppatori di AWS Lambda .

Suggerimento
  • Come best practice, utilizza le versioni più recenti dei runtime forniti per migliorare le prestazioni e usufruire delle nuove funzionalità.

  • Non è possibile creare o aggiornare funzioni con questa versione obsoleta di Node.js. È possibile associare le funzioni esistenti a queste versioni solo alle distribuzioni. CloudFront Le funzioni con queste versioni associate a distribuzioni continueranno a essere eseguite. Tuttavia, ti consigliamo di trasferire la funzione alle versioni più recenti di Node.js. Per ulteriori informazioni, consulta la politica di deprecazione del Runtime nella AWS Lambda Developer Guide e la pianificazione del rilascio di Node.js su. GitHub

CloudFront intestazioni

Le funzioni Lambda @Edge possono leggere, modificare, rimuovere o aggiungere qualsiasi CloudFront intestazione elencata in. Aggiungi intestazioni CloudFront di richiesta

Note
  • Se desideri CloudFront aggiungere queste intestazioni, devi configurarle CloudFront per aggiungerle utilizzando una politica di cache o una politica di richiesta di origine.

  • CloudFront aggiunge le intestazioni dopo l'evento di richiesta del visualizzatore, il che significa che le intestazioni non sono disponibili per le funzioni Lambda @Edge in una richiesta del visualizzatore. Le intestazioni sono disponibili solo per le funzioni Lambda@Edge in una richiesta origine e una risposta origine.

  • Se la richiesta del visualizzatore include intestazioni con questi nomi e hai configurato CloudFront per aggiungere queste intestazioni utilizzando una policy di cache o una policy di richiesta di origine, CloudFront sovrascrive i valori di intestazione presenti nella richiesta del visualizzatore. Le funzioni rivolte al visualizzatore vedono il valore dell'intestazione della richiesta del visualizzatore, mentre le funzioni rivolte all'origine vedono il valore di intestazione aggiunto. CloudFront

  • Se una funzione di richiesta del visualizzatore aggiunge l'CloudFront-Viewer-Countryintestazione, non riesce la convalida e CloudFront restituisce il codice di stato HTTP 502 (Bad Gateway) al visualizzatore.

Restrizioni sul corpo della richiesta con l'opzione Includi corpo

Quando si sceglie l’opzione Includi corpo per esporre il corpo della richiesta alla funzione Lambda@Edge, si applicano i seguenti limiti di informazioni e dimensioni per le parti del corpo che vengono esposte o sostituite.

  • CloudFront sempre base64 codifica il corpo della richiesta prima di esporlo a Lambda @Edge.

  • Se il corpo della richiesta è grande, lo CloudFront tronca prima di esporlo a Lambda @Edge, come segue:

    • Per gli eventi di richiesta del visualizzatore, il corpo è troncato a 40 KB.

    • Per gli eventi di richiesta di origine, il corpo è troncato a 1 MB.

  • Se accedi al corpo della richiesta in modalità di sola lettura, CloudFront invia il corpo completo della richiesta originale all'origine.

  • Se la funzione Lambda@Edge sostituisce il corpo della richiesta, si applicano i seguenti limiti di dimensioni per il corpo restituito dalla funzione:

    • Se la funzione Lambda@Edge restituisce il corpo come testo semplice:

      • Per gli eventi di richiesta visualizzatore, il limite del corpo è 40 KB.

      • Per gli eventi di richiesta origine, il limite del corpo è 1 MB.

    • Se la funzione Lambda@Edge restituisce il corpo codificato in base64:

      • Per gli eventi di richiesta visualizzatore, il limite del corpo è 53,2 KB.

      • Per gli eventi di richiesta origine, il limite del corpo è 1,33 MB.

Nota

Se la funzione Lambda@Edge restituisce un corpo che supera questi limiti, la richiesta avrà esito negativo con un codice di stato HTTP 502 (Errore di convalida Lambda). Ti consigliamo di aggiornare la funzione Lambda@Edge in modo che il corpo non superi questi limiti.

Timeout di risposta e timeout keep-alive (solo origini personalizzate)

Se utilizzi le funzioni Lambda@Edge per impostare il timeout di risposta o il timeout keep-alive per le origini di distribuzione, verifica di specificare un valore supportato dall’origine. Per ulteriori informazioni, consulta Quote timeout di risposta e keep-alive.