{"id":4816,"date":"2022-09-02T09:00:00","date_gmt":"2022-09-02T07:00:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=4816"},"modified":"2022-09-05T14:15:26","modified_gmt":"2022-09-05T12:15:26","slug":"costruire-applicazioni-serverless-in-deno-con-lambda-custom-runtime-cdk","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/costruire-applicazioni-serverless-in-deno-con-lambda-custom-runtime-cdk\/","title":{"rendered":"Costruire applicazioni Serverless in Deno con Lambda Custom Runtime & CDK"},"content":{"rendered":"\n

Introduzione<\/h2>\n\n\n\n

Bentornato su Proud2beCloud, il blog di beSharp<\/a>! Oggi andremo ad esplorare insieme alcune possibilit\u00e0 offerte dal mondo Cloud concentrandoci sulla customizzazione delle soluzioni mantenendo sempre un approccio Infrastructure-as-a-Code<\/em> (IaaC)<\/strong>, Serverless<\/strong> e il pi\u00f9 possibile fully managed<\/strong>. Parleremo quindi di Lambda, CDK, pipeline, Serverless Repository e molto altro. <\/p>\n\n\n\n

Le Funzioni AWS Lambda<\/strong> (FaaS) sono uno strumento estremamente versatile del cloud AWS poich\u00e9 \u00e8 possibile utilizzarle per molteplici applicazioni. <\/p>\n\n\n\n

Ma come possiamo fare se vogliamo utilizzare un linguaggio di programmazione non attualmente supportato? La risposta \u00e8 semplice: Custom Runtime<\/strong>. <\/p>\n\n\n\n

Di custom runtime abbiamo gi\u00e0 parlato in un nostro precedente articolo<\/a> in cui abbiamo visto come realizzare un\u2019applicazione C++ su AWS Lambda. Ora, a 2 anni di distanza, vogliamo presentare una nuova versione dell\u2019articolo scegliendo un altro linguaggio molto chiacchierato al momento: Deno<\/strong>.<\/p>\n\n\n\n

Ci concentreremo inoltre su come automatizzare il delivery della nostra applicazione in Deno su Lambda grazie a pipeline CI\/CD e CDK. <\/p>\n\n\n\n

Custom runtime on Lambda<\/h3>\n\n\n\n

Come anticipato, se sei un lettore del nostro blog, probabilmente conoscerai la possibilit\u00e0 di utilizzare custom runtime all\u2019interno di AWS Lambda<\/a>.<\/p>\n\n\n\n

Per riassumere in breve: Lambda con custom runtime differisce da una lambda \u2018standard\u2019 poich\u00e9 deve contenere, oltre al codice sorgente, tutte le librerie compilate necessarie per l\u2019esecuzione dell\u2019applicazione e, se il linguaggio scelto \u00e8 interpretato, anche l\u2019interprete. <\/p>\n\n\n\n

Utilizzare una runtime custom per AWS Lambda garantisce l\u2019elasticit\u00e0<\/strong> delle soluzioni proposte dallo sviluppatore per la risoluzione e l\u2019ottimizzazione di problemi che richiedono un linguaggio di programmazione specifico.<\/p>\n\n\n\n

Nell\u2019articolo precedente \u00e8 descritto nel dettaglio come creare una custom runtime partendo da zero. Oggi invece cerchiamo di semplificare il processo e utilizzare dove possibile elementi pronti e\/o riutilizzabili<\/strong>.<\/p>\n\n\n\n

Infatti, per la maggior parte dei linguaggi di programmazione \u00e8 probabile che esista gi\u00e0 una custom runtime pronta all\u2019utilizzo, oppure che ci sia comunque una buona base di partenza per una soluzione custom su GitHub o su altri strumenti di condivisione.<\/p>\n\n\n\n

La runtime che andremo ad utilizzare nei paragrafi successivi \u00e8 quella di Deno. <\/p>\n\n\n\n

Cos\u2019\u00e8 Deno<\/h3>\n\n\n\n

Deno<\/a> \u00e8 una runtime per Javascript<\/strong>, Typescript<\/strong> e WebAssembly<\/strong> basata su JS Engine e su Rust. <\/p>\n\n\n\n

Ha il ruolo sia di runtime che di package manager all\u2019interno dello stesso eseguibile, quindi non \u00e8 necessario un gestore di pacchetti separato. <\/p>\n\n\n\n

Deno punta a essere un ambiente di scripting sicuro e intuitivo<\/strong> per il programmatore ed \u00e8 open-source sotto licenza MIT. <\/p>\n\n\n\n

Come Node.js anche Deno si concentra su un\u2019architettura ad eventi e pu\u00f2 essere utilizzato per creare web server, eseguire computazioni scientifiche ed altre soluzioni. <\/p>\n\n\n\n

Deno si differenzia da Node.js in diversi aspetti:<\/p>\n\n\n\n