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à.
Domande frequenti su Lambda
In molti casi, la separazione delle funzionalità in diverse funzioni può fornire prestazioni migliori e anche rendere un'applicazione più gestibile e scalabile. Tuttavia, i "monoliti" Lambda possono essere un utile trampolino di lancio nella migrazione di un'applicazione esistente.
Quante funzionalità deve contenere una singola funzione Lambda?
La funzione deve eseguire una singola attività nel flusso di dati tra i AWS servizi del microservizio. Tuttavia, se l'attività funzionale è troppo piccola, ciò potrebbe comportare una latenza aggiuntiva nell'applicazione e un sovraccarico legato alla gestione di un gran numero di funzioni. L'ambito esatto di una funzione è determinato dal caso d'uso.
Le applicazioni basate su Lambda possono funzionare in più regioni?
Sì, molti servizi serverless forniscono replica e supporto per più regioni, tra cui DynamoDB e Amazon S3. Le funzioni Lambda possono essere implementate in più regioni come parte di una pipeline di implementazione e API Gateway può essere configurato per supportare questa configurazione. Guarda questo esempio di architettura
Le funzioni Lambda possono essere eseguite secondo una pianificazione temporizzata?
Sì, puoi usare espressioni pianificate per le regole EventBridge per attivare una funzione Lambda. Questo formato utilizza la sintassi cron e può essere impostato con una granularità di un minuto. Per un esempio, consulta questo tutorial.
Come può una funzione Lambda mantenere lo stato tra le invocazioni?
In molti casi, una tabella DynamoDB è il modo ideale di conservazione poiché fornisce un accesso ai dati a bassa latenza e può essere scalata con il servizio Lambda. Puoi anche archiviare dati in Amazon EFS for Lambda
Quali tipi di carichi di lavoro sono adatti alle architetture basate sugli eventi?
Le architetture basate sugli eventi comunicano tra diversi sistemi utilizzando le reti, che introducono una latenza variabile. Per i carichi di lavoro che richiedono una latenza molto bassa, come i sistemi di trading in tempo reale, questo design potrebbe non essere la scelta migliore. Tuttavia, per carichi di lavoro altamente scalabili e disponibili o con schemi di traffico imprevedibili, le architetture basate sugli eventi possono fornire un modo efficace per soddisfare queste esigenze.
Perché il servizio Lambda ha un limite di 15 minuti per le funzioni?
Le funzioni Lambda esistono per elaborare gli eventi e la maggior parte degli eventi viene elaborata molto rapidamente, in genere meno di 1 secondo per la maggior parte delle invocazioni di produzione. La durata di una funzione è determinata dal tempo impiegato per elaborare un evento. Sebbene alcuni carichi di lavoro ad alta intensità di calcolo possano richiedere diversi minuti, pochissimi richiedono 15 minuti per essere completati.
Se ritieni che sia necessaria una durata maggiore, assicurati che il codice della funzione elabori singoli eventi, esegua singole attività e utilizzi le migliori pratiche descritte in questo documento. In molti casi, le funzioni possono essere riprogettate per elaborare singoli eventi e ridurre il tempo necessario per l'elaborazione.
Perché una funzione con simultaneità riservata non è scalabile per soddisfare il traffico in entrata?
La concorrenza riservata per una funzione Lambda funge anche da valore di capacità massima. L'aumento del limite sulla simultaneità totale non influenza tale comportamento. Se hai bisogno di una funzione con concorrenza riservata per elaborare più traffico, puoi aggiornare il valore di concorrenza riservata, che aumenta la velocità effettiva massima della tua funzione.
Perché una funzione con concomitanza assegnata continua a subire partenze a freddo?
Puoi misurare le partenze a freddo man mano che Lambda aumenta aggiungendo il monitoraggio X-Ray alla tua funzione. Una funzione che utilizza la concorrenza fornita non presenta un comportamento di avvio a freddo poiché l'ambiente di esecuzione viene preparato prima della chiamata. Tuttavia, la concorrenza fornita deve essere applicata a una versione o alias specifici di una funzione, non alla versione $LATEST. Nei casi in cui continui a riscontrare un comportamento di avvio a freddo, assicurati di richiamare la versione dell'alias con provisioned concurrency configurata.
Qual è il runtime migliore da usare per la mia funzione Lambda?
Lambda è indipendente dalla tua scelta di runtime. Per funzioni semplici, i linguaggi interpretati come Python e Node.js offrono le prestazioni più veloci. Per le funzioni con calcoli più complessi, i linguaggi compilati come Java sono spesso più lenti da inizializzare ma vengono eseguiti rapidamente nell'handler Lambda. La scelta del runtime è influenzata anche dalle preferenze degli sviluppatori e dalla familiarità del linguaggio.
Come posso assicurarmi che la versione dell'SDK non cambi?
La versione incorporata SDKs può cambiare senza preavviso man mano che AWS vengono rilasciati nuovi servizi e funzionalità. Puoi bloccare una versione dell'SDK creando un livello Lambda con la versione specifica necessaria. La funzione utilizza quindi sempre la versione nel livello, anche se la versione incorporata nel servizio cambia.
Come posso verificare che un'applicazione basata su Lambda sia scalabile per soddisfare il traffico previsto?
Per garantire la scalabilità dell'applicazione come previsto, utilizza i test di carico nel processo di sviluppo per simulare il livello di traffico previsto.
Quali carichi di lavoro sono adatti per la concorrenza assegnata?
La concorrenza fornita è progettata per rendere disponibili funzioni con tempi di risposta a due cifre in millisecondi. In genere, i carichi di lavoro interattivi traggono il massimo vantaggio da questa funzionalità. Si tratta di applicazioni in cui gli utenti avviano richieste, come le applicazioni Web e per dispositivi mobili, e sono le più sensibili alla latenza. I carichi di lavoro asincroni, come le pipeline di elaborazione dei dati, sono spesso meno sensibili alla latenza e quindi di solito non necessitano di un provisioning simultaneo.
Perché la mia funzione Lambda non registra alcun output?
Se una funzione Lambda non effettua l'accesso CloudWatch, assicurati innanzitutto che la funzione venga richiamata dal chiamante. Controlla i registri del servizio di chiamata e tutte le CloudWatch metriche che indicano che un evento ha attivato la funzione. Quindi, controlla i CloudWatch registri della funzione. Tutte le funzioni Lambda registrano tre righe, anche se non sono presenti altre registrazioni esplicite nel codice personalizzato della funzione:

Se non viene visualizzata alcuna registrazione CloudWatch nonostante la funzione sia stata richiamata, controlla i permessi della funzione. Il ruolo IAM deve includere le autorizzazioni di registrazione, altrimenti la funzione non può scrivere log sul servizio. Puoi allegare la AWSLambdaBasicExecutionRolepolicy al ruolo di esecuzione della tua funzione per concedere queste autorizzazioni.