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à.
Migliorare le prestazioni di avvio con Lambda SnapStart
Lambda SnapStart per Java può migliorare le prestazioni di avvio per le applicazioni sensibili alla latenza fino a 10 volte senza costi aggiuntivi, in genere senza modifiche al codice della funzione. Il fattore che contribuisce maggiormente alla latenza di avvio (spesso definita tempo di avvio a freddo) è il tempo impiegato da Lambda per inizializzare la funzione, che include il caricamento del codice della funzione, l'avvio del runtime e l'inizializzazione del codice della funzione.
Con SnapStart, Lambda inizializza la funzione quando si pubblica una versione della funzione. Lambda utilizza lo snapshot di una microVM Firecracker
Importante
Se le applicazioni dipendono dall'univocità dello stato, è necessario valutare il codice della funzione e verificare che sia resiliente alle operazioni di snapshot. Per ulteriori informazioni, consulta Gestire l'unicità con Lambda SnapStart.
Argomenti
- Funzionalità e limitazioni supportate
- Regioni supportate
- Considerazioni sulla compatibilità
- SnapStart prezzi
- Confronto tra Lambda SnapStart e la concorrenza fornita
- Risorse aggiuntive
- Attivazione e gestione di Lambda SnapStart
- Gestire l'unicità con Lambda SnapStart
- Implementa il codice prima o dopo le istantanee della funzione Lambda
- Monitoraggio per Lambda SnapStart
- Modello di sicurezza per Lambda SnapStart
- Massimizza le prestazioni Lambda SnapStart
- Risoluzione degli SnapStart errori per le funzioni Lambda Java
Funzionalità e limitazioni supportate
SnapStart supporta i runtime gestiti di Java 11 e versioni successive. Altri runtime gestiti (come nodejs20.x
e python3.12
), Runtime solo per il sistema operativo e le immagini di container non sono supportati.
SnapStart non supporta la concorrenza fornita, Amazon Elastic File System EFS (Amazon) o lo storage temporaneo superiore a 512 MB.
Con cui lavorare SnapStart, puoi usare la console Lambda, the AWS Command Line Interface (AWS CLI), LambdaAPI,, AWS SDK for Java AWS CloudFormation, AWS Serverless Application Model (AWS SAM) e. AWS Cloud Development Kit (AWS CDK) Per ulteriori informazioni, consulta Attivazione e gestione di Lambda SnapStart.
Nota
È possibile utilizzare SnapStart solo versioni di funzioni pubblicate e alias che rimandano a versioni. Non è possibile utilizzare SnapStart sulla versione non pubblicata di una funzione ($LATEST).
Regioni supportate
SnapStart è disponibile nelle seguenti Regioni AWS versioni:
Stati Uniti orientali (Virginia settentrionale)
Stati Uniti orientali (Ohio)
Stati Uniti occidentali (California settentrionale)
Stati Uniti occidentali (Oregon)
Africa (Città del Capo)
Asia Pacific (Hong Kong)
Asia Pacifico (Mumbai)
Asia Pacific (Hyderabad)
Asia Pacifico (Tokyo)
Asia Pacifico (Seoul)
Asia Pacifico (Osaka-Locale)
Asia Pacifico (Singapore)
Asia Pacifico (Sydney)
Asia Pacifico (Giacarta)
Asia Pacifico (Melbourne)
Canada (Centrale)
Europa (Stoccolma)
Europa (Francoforte)
Europa (Zurigo)
Europa (Irlanda)
Europe (London)
Europa (Parigi)
Europa (Milano)
Europa (Spagna)
Medio Oriente (UAE)
Medio Oriente (Bahrein)
Sud America (San Paolo)
Considerazioni sulla compatibilità
Con SnapStart, Lambda utilizza una singola istantanea come stato iniziale per più ambienti di esecuzione. Se la funzione utilizza uno dei seguenti elementi durante la fase di inizializzazione, potrebbe essere necessario apportare alcune modifiche prima di utilizzarla: SnapStart
- Unicità
-
Se il codice di inizializzazione genera contenuti unici inclusi nello snapshot, il contenuto potrebbe non essere più unico quando viene riutilizzato in più ambienti di esecuzione. Per mantenere l'unicità durante l'utilizzo SnapStart, è necessario generare contenuti unici dopo l'inizializzazione. Ciò include segreti unici IDs e unici e l'entropia utilizzata per generare pseudocasualità. Per informazioni su come ripristinare l'unicità, consulta Gestire l'unicità con Lambda SnapStart.
- Connessioni di rete
-
Lo stato delle connessioni che la funzione stabilisce durante la fase di inizializzazione non è garantito quando Lambda riprende la funzione da uno snapshot. Convalida lo stato delle connessioni di rete e ristabiliscile se necessario. Nella maggior parte dei casi, le connessioni di rete stabilite da un vengono riattivate automaticamente. AWS SDK Per altre connessioni, consulta le best practice.
- Dati temporanei
-
Durante la fase di inizializzazione, alcune funzioni scaricano o inizializzano dati effimeri, come credenziali temporanee o timestamp memorizzati nella cache. Aggiorna i dati temporanei nel gestore delle funzioni prima di utilizzarli, anche quando non li usi. SnapStart
SnapStart prezzi
Non ci sono costi aggiuntivi per SnapStart. L'addebito viene effettuato in base al numero di richieste per le funzioni, al tempo impiegato dal codice per l'esecuzione e alla memoria configurata per la funzione. La durata viene calcolata dal momento in cui il codice inizia a funzionare fino a quando ritorna o termina in altro modo, arrotondato al valore di 1 ms più vicino.
I costi di durata si applicano al codice eseguito nel gestore delle funzioni, al codice di inizializzazione dichiarato all'esterno del gestore, al tempo impiegato per il caricamento di runtime (JVM) e a qualsiasi codice eseguito in un hook di runtime. Per ulteriori informazioni su come Lambda calcola la durata, consulta Monitoraggio per Lambda SnapStart.
Per le funzioni configurate con SnapStart, Lambda ricicla periodicamente gli ambienti di esecuzione ed esegue nuovamente il codice di inizializzazione. Per garantire la resilienza, Lambda crea istantanee in più regioni. I costi vengono applicati ogni volta che Lambda esegue nuovamente il codice di inizializzazione in un'altra regione. Per ulteriori informazioni su come Lambda calcola gli addebiti, consulta Prezzi di AWS Lambda
Confronto tra Lambda SnapStart e la concorrenza fornita
Sia la concorrenza Lambda SnapStart che quella fornita possono ridurre gli avviamenti a freddo e le latenze anomale quando una funzione aumenta. SnapStart ti aiuta a migliorare le prestazioni di avvio fino a 10 volte senza costi aggiuntivi. La simultaneità con provisioning mantiene le funzioni inizializzate e pronte a rispondere entro i 100 millisecondi. La configurazione della concorrenza fornita comporta addebiti a carico dell'utente. Account AWS Utilizza la simultaneità con provisioning se l'applicazione ha requisiti di latenza rigorosi per l'avvio a freddo. Non è possibile utilizzare entrambe le funzioni SnapStart e la concorrenza predisposta nella stessa versione della funzione.
Nota
SnapStart funziona meglio se utilizzato con invocazioni di funzioni su larga scala. Le funzioni richiamate di rado potrebbero non presentare gli stessi miglioramenti delle prestazioni.
Risorse aggiuntive
Oltre a leggere gli altri argomenti di questo capitolo, ti consigliamo anche di provare Starting up faster with AWS Lambda SnapStart