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.

DNSrisoluzione

CloudFront esegue una DNS risoluzione sul nome di dominio di origine prima di eseguire la funzione Lambda @Edge della richiesta di origine. Se il DNS servizio 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 DNSerrore () NonS3OriginDnsError.

Per ulteriori informazioni sulla gestione del DNS failover, consulta la sezione Configurazione del DNS failover nella Amazon Route 53 Developer Guide.

HTTPcodici di stato

Le funzioni Lambda @Edge per gli eventi di risposta del visualizzatore non possono modificare il codice di HTTP stato 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 IAM esecuzione associato alla funzione Lambda deve consentire ai responsabili del servizio lambda.amazonaws.com e edgelambda.amazonaws.com assumere il ruolo. Per ulteriori informazioni, consulta Configura IAM le autorizzazioni e i ruoli per Lambda @Edge.

Caratteristiche di Lambda

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

Runtime supportati

Lambda@Edge supporta le funzioni Lambda con i seguenti runtime:

Node.js

Python

  • Node.js 20

  • Node.js 18

  • Node.js 16¹

  • Node.js 14 m²

  • Node.js 12²

  • Node.js 10²

  • Node.js 8 m²

  • Node.js 6 m²

  • Python 3.12

  • Python 3.11

  • Python 3.10

  • Python 3.9

  • Python 3.8

  • Python 3.7

¹ Questa versione di Node.js ha raggiunto la fine del ciclo di vita e sarà presto obsoleta da. AWS Lambda

²Questa versione di Node.js ha raggiunto la fine del ciclo di vita ed è completamente obsoleta da. AWS Lambda

Non è possibile creare o aggiornare funzioni con versioni obsolete di Node.js. È possibile associare le funzioni esistenti a queste versioni solo alle distribuzioni. CloudFront Le funzioni con queste versioni associate alle distribuzioni continueranno a funzionare. Tuttavia, si consiglia di spostare la funzione su 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

Suggerimento

Come procedura ottimale, utilizzate le versioni più recenti dei runtime forniti per migliorare le prestazioni e aggiungere nuove funzionalità.

CloudFrontintestazioni

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 di origine e una risposta di 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, fallisce la convalida e CloudFront restituisce il codice di HTTP stato 502 (Bad Gateway) al visualizzatore.

Restrizioni sul corpo della richiesta con l'opzione Includi corpo

Quando scegli l'opzione Include Body per esporre il corpo della richiesta alla tua funzione Lambda @Edge, le seguenti informazioni e limiti di dimensione si applicano alle 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, al corpo restituito dalla funzione si applicano i seguenti limiti di dimensione:

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

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

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

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

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

      • Per gli eventi di richiesta di 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 della distribuzione, verifica di specificare un valore che l'origine può supportare. Per ulteriori informazioni, consulta Quote di timeout di risposta e keep-alive.