{"id":1632,"date":"2020-08-21T11:28:47","date_gmt":"2020-08-21T09:28:47","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=1632"},"modified":"2024-02-02T12:10:04","modified_gmt":"2024-02-02T11:10:04","slug":"costruiamo-un-backend-serverless-con-typescript-nodejs-e-aws-lambda","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/costruiamo-un-backend-serverless-con-typescript-nodejs-e-aws-lambda\/","title":{"rendered":"Costruiamo un backend Serverless con TypeScript, Node.js e AWS Lambda."},"content":{"rendered":"\n

Su Amazon Web Services<\/strong> il servizio computazionale Serverless per eccellenza rimane AWS Lambda<\/strong>, quasi immancabile in un\u2019architettura che utilizza questo paradigma.<\/p>\n\n\n\n

AWS Lambda permette di utilizzare potenza computazionale liberi dal pensiero di dover gestire i server sottostanti e senza doversi preoccupare di gestione di patch, update software o shutdown imprevisti della macchina. Utilizzando questo paradigma, possiamo concentrarci interamente sulla nostra applicazione.<\/p>\n\n\n\n

AWS Lambda oggi offre numerosi runtime engine<\/strong>, oltre che la possibilit\u00e0 di creare il proprio se si vuole utilizzare un linguaggio di programmazione non ancora supportato in modalit\u00e0 managed da AWS<\/a>.<\/p>\n\n\n\n

Sta quindi a noi la scelta della tecnologia con cui scrivere le AWS Lambda Functions (FaaS): possiamo utilizzare il linguaggio con cui siamo pi\u00f9 familiari<\/strong> o magari quello che ci permette di raggiungere i nostri obiettivi pi\u00f9 velocemente<\/strong>.<\/p>\n\n\n\n

In questo articolo andremo a parlare di come sviluppare in modo veloce ed efficace un backend serverless utilizzando TypeScript<\/strong> come linguaggio di programmazione.<\/p>\n\n\n\n

L\u2019applicazione utilizzer\u00e0 Express<\/strong>, un web application framework utile per lo sviluppo di servizi web per Node.js. Node.js<\/strong> non \u00e8 altro che il runtime environment, gi\u00e0 supportato da AWS, dove il nostro codice TypeScript, compilato in JavaScript, verr\u00e0 eseguito su Lambda.<\/p>\n\n\n\n

Andremo ad analizzare la soluzione proposta per poi deployarla sul nostro account AWS. Il progetto \u00e8 consultabile e scaricabile da GitHub<\/a>! <\/p>\n\n\n\n

Servizi utilizzati<\/h2>\n\n\n\n

Iniziamo col proporre lo schema architetturale<\/strong> della nostra applicazione Serverless.<\/p>\n\n\n

\n
\"schema<\/figure><\/div>\n\n\n

Il codice verr\u00e0 rilasciato su una AWS Lambda function, la cui invocazione sar\u00e0 possibile solamente attraverso un API Gateway<\/strong>.<\/p>\n\n\n\n

In un applicativo backend non pu\u00f2 ovviamente mancare un Data Source. Sfruttando a pieno il paradigma Serverless, andremo ad utilizzare un Aurora Serverless<\/strong> come database relazionale dove salvare e recuperare i nostri dati.<\/p>\n\n\n\n

Ricapitolando, andremo ad utilizzare i seguenti servizi cloud:<\/p>\n\n\n\n