Differenze tra Funzioni CloudFront e Lambda@Edge
CloudFront Functions e Lambda@Edge forniscono entrambi un modo per eseguire il codice in risposta agli eventi CloudFront.
Funzioni CloudFront è la soluzione ideale per funzioni leggere e di breve durata per i casi d’uso seguenti:
-
Normalizzazione della chiave della cache: trasformare gli attributi delle richieste HTTP (intestazioni, stringhe di query, cookie, anche il percorso dell’URL) per creare una chiave della cache ottimale, che può migliorare la percentuale di riscontri nella cache.
-
Manipolazione delle intestazioni: inserire, modificare o eliminare intestazioni HTTP nella richiesta o nella risposta. Ad esempio, è possibile aggiungere una intestazione
True-Client-IPa ogni richiesta. -
Reindirizzamenti o riscritture di URL: reindirizzare i visualizzatori ad altre pagine in base alle informazioni nella richiesta o reindirizzare tutta la richiesta da un percorso a un altro.
-
Richiesta di autorizzazione: puoi convalidare token di autorizzazione con hash, come token Web JSON (JWT), ispezionando le intestazioni dell’autorizzazione o altri metadati della richiesta.
Per iniziare a utilizzare CloudFront Functions, consulta Personalizzazione all’edge con Funzioni CloudFront.
Lambda@Edge è la soluzione ideale per i seguenti casi d’uso:
-
Funzioni che richiedono diversi millisecondi o più per il completamento
-
Funzioni che richiedono CPU o memoria regolabili
-
Funzioni che dipendono da librerie di terze parti (incluso l’SDK AWS, per l’integrazione con altri servizi Servizi AWS)
-
Funzioni che richiedono l’accesso alla rete per utilizzare servizi esterni per l’elaborazione
-
Funzioni che richiedono l’accesso al file system o l’accesso al corpo delle richieste HTTP
Per iniziare a utilizzare Lambda@Edge, consulta Personalizzazione al livello di edge con Lambda@Edge.
Per aiutarti a scegliere l’opzione più adatta al tuo caso d’uso, utilizza la tabella seguente per comprendere le differenze tra Funzioni CloudFront e Lambda@Edge. Per informazioni sulle differenze che si applicano ai metodi di assistente di gestione alla modifica dell’origine, consulta Scelta tra Funzioni CloudFront e Lambda@Edge.
| CloudFront Functions | Lambda@Edge | |
|---|---|---|
| Linguaggi di programmazione | JavaScript (compatibile con ECMAScript 5.1) | Node.js e Python |
| Origini eventi |
|
|
|
Supporta Amazon CloudFront KeyValueStore |
Sì KeyValueStore di CloudFront supporta solo il runtime JavaScript 2.0 |
No |
| Dimensionare | Fino a milioni di richieste al secondo | Fino a 10.000 richieste al secondo per regione |
| Durata della funzione | Submillisecondo |
Fino a 30 secondi (richiesta del visualizzatore e risposta del visualizzatore) Fino a 30 secondi (richiesta origine e risposta origine) |
|
Dimensione massima della memoria di funzione |
2 MB |
128 MB (richiesta del visualizzatore e risposta del visualizzatore) 10.240 MB (10 GB) (richiesta origine e risposta origine) Per ulteriori informazioni, consulta Quote di Lambda@Edge. |
| Dimensione massima del codice funzione e delle librerie incluse | 10 KB |
50 MB (richiesta del visualizzatore e risposta del visualizzatore) 50 MB (richiesta origine e risposta origine) |
| Accesso alla rete | No | Sì |
| Accesso al file system | No | Sì |
| Accesso al corpo della richiesta | No | Sì |
| Accesso alla geolocalizzazione e ai dati del dispositivo | Sì |
No (richiesta visualizzatore e risposta visualizzatore) Sì (richiesta origine e risposta origine) |
| Può creare e testare interamente all'interno di CloudFront | Sì | No |
| Registrazione delle funzioni e parametri | Sì | Sì |