La risposta di Dawny33 è buona, ma vorrei iniziare prima nel processo di sviluppo.
Tenere d'occhio l'ambiente cloud per assicurarsi che le funzioni si comportino come previsto (comprese le funzioni di "produzione", che potrebbero operare su un set di dati diverso) è fondamentale, perché potrebbe rivelare cose che sono impossibili da riprodurre localmente o con un set di dati di prova.
Tuttavia, direi che questo test delle prestazioni che si esegue in uno scopo di ottimizzazione dovrebbe iniziare direttamente dalla macchina dello sviluppatore. O, almeno, da un ambiente locale prima di passare al cloud.
Il motivo per cui lo dico è che mentre AWS Lambdas è sorprendente su molti punti, il fatto che tu non abbia il pieno controllo sul server limiterà le tue capacità di strumentazione. Non sto dicendo che la strumentazione sia impossibile quando in serverless, ma prova a capire quante interruzioni della CPU hai (e quante sono causate dal tuo codice) solo per divertimento;)
Quindi ciò che consiglio, e in realtà non si limita a serverless, è iniziare la profilazione in anticipo. La profilazione di NodeJS può essere fatta con molti strumenti diversi, NewRelic, dynatrace e AppDynamic sono alcuni dei grandi protagonisti. C'è anche un lettore più piccolo, alcuni di essi sono solo un pacchetto NPM da installare (come Nodefly). È anche possibile eseguire alcuni NodeJS senza alcun ulteriore strumento, in quanto è presente un profiler integrato nel motore V8. Questa documentazione di NodeJS ti farà iniziare.
Qualunque strumento tu scelga, vuoi installarlo localmente e raccogliere dati di profilazione. Ciò potrebbe comportare l'esecuzione di un agente o l'inclusione di un pacchetto in package.json. Le istruzioni del tuo strumento ti diranno come installarlo. Un buon profiler ti farà sapere quanta memoria e CPU usi. Strumenti migliori ti daranno un'idea di quante chiamate remote sono state fatte, quanto tempo hanno impiegato.
Utilizzare i dati di profilazione forniti dallo strumento per identificare i colli di bottiglia e risolverli. Non c'è limite a quanta profilazione puoi fare. Alcune persone (pazze?) Guarderanno le chiamate di sistema della loro funzione più critica. Potresti dover fare questo tipo di cose se vuoi radere nanosecondi della tua funzione (ma forse AWS Lambda non è la scelta migliore per iniziare).
Vale anche la pena notare a questo punto che non ho menzionato nulla di specifico per AWS Lambda. Questo perché le tue ottimizzazioni molto probabilmente non saranno specifiche di AWS Lambda (dopotutto, in serverless non dovresti preoccuparti del server / ambiente).
Assicurati che non solo il tuo codice funzioni, ma che funzioni nel modo previsto. Non ottimizzare eccessivamente, ma tieni d'occhio la CPU e l'utilizzo della memoria. Un array da 2 MB dovrebbe davvero crescere fino a 10 MB quando lo ordinate? Probabilmente no.
Quindi sarai in grado di utilizzare gli strumenti menzionati da Dawny33, o alcuni altri strumenti, per confermare che le tue funzioni si comportano in modo simile quando vengono distribuite su Lambda. Avrai comunque già un livello molto alto di fiducia nella tua funzione e dovrai solo confermare che si comportano correttamente, non profilarli completamente.