AWS SAM: Semplificare il Cloud Computing con le Lambda

Di recente, ho iniziato a utilizzare le funzionalità Lambda di AWS per le mie esigenze di cloud computing. Durante il mio percorso di apprendimento di questa tecnologia, ho scoperto che utilizzare SAM CLI è altamente vantaggioso rispetto all’approccio di navigare attraverso le varie interfacce web di Amazon per effettuare operazioni come il caricamento del codice Python su Lambda, la gestione dei log su CloudWatch e la verifica degli eventi.

AWS SAM

Il framework Serverless Application Model (SAM) consente la creazione in locale di applicazioni serverless che poi possiamo deployare su AWS Lambda. Prima della sua introduzione, gli sviluppatori solitamente adottavano un processo molto “meccanico” che prevedeva la scrittura, il testing, monitoraggio e il deploy del codice tramite l’editor online.

Iniziamo a semplificarci la vita

Oggi grazie a SAM posso focalizzarmi sulla creazione delle mie applicazioni serverless lasciando che la pipeline si occupi di gestire l’infrastruttura server. Una volta installata la command line di SAM ho notevolmente semplificato la mia vita e la gestione delle risorse cloud (funzioni Lambda, endpoint API, tabelle DynamoDB e altre risorse) utilizzando un semplice modello YAML.

La CLI mi consente di creare, testare ed eseguire localmente le applicazioni serverless basate su AWS Lambda e AWS API Gateway prima di effettuare il rilascio sulla piattaforma di AWS. Inoltre, fornisce funzionalità per il packaging dell’enviroment in Python e il deployment delle applicazioni.

AWS CLI

SAM fa uso dell’AWS CLI in background per effettuare la distribuzione del progetto, quindi è fondamentale assicurarsi di averla installata. Per portare a termine con successo questo tutorial sarà quindi indispensabile possedere un account AWS.
Nel caso in cui non ne avessi già uno, ti consiglio di crearne uno nuovo! Inoltre, sarà necessario configurare utenti e ruoli con le autorizzazioni appropriate per consentire la creazione di risorse all’interno del tuo account AWS.

Step 1 – Installazione di AWS CLI

L’installazione di AWS CLI può variare a seconda del sistema operativo utilizzato, ma è possibile seguirla step by step utilizzando la documentazione ufficiale.
Nel mio caso, sto utilizzando Windows 11. Per procedere con l’installazione, basta scaricare il programma di installazione di AWS CLI e seguire attentamente le istruzioni fornite dal programma di installazione.

Dopo l’installazione, apriamo il prompt dei comandi e verifichiamo la versione di AWS CLI con il comando:

Step 2 – Configurazione delle credenziali

Una volta installato AWS CLI, è necessario configurare le credenziali di accesso per poter interagire con i servizi AWS. Possiamo farlo eseguendo il comando:

Ci verranno così richieste le credenziali del nostro utente e dovremmo inserire le seguenti informazioni: Access Key ID, Secret Access Key, Region Name, output format

Identity and Access Management

Nel 2019 avevo acquisito un minimo di esperienza nello sviluppo di una skill Alexa per gli amici dell’Arc Team, come documentato in questo articolo “Archeologia: Alexa e NLP”. Riuscendo a destreggiarmi fra i diversi servizi di Amazon, riuscendo così a creare un ruolo IAM con le autorizzazioni appropriate che mi permettesse di lavorare con le funzioni Lambda (“Alexa: Creazione policy ed utente”, 2019).  Per comprendere meglio il funzionamento delle autorizzazioni, consideriamo il caso in cui desideriamo creare una funzione AWS Lambda che richieda l’invocazione di vari servizi AWS, tra cui Amazon DynamoDB. In questa situazione, diventa essenziale istituire un ruolo IAM con le autorizzazioni necessarie per consentire alla funzione Lambda di accedere al servizio specifico che intende utilizzare.

AWS SAM CLI

A seconda del sistema operativo in uso, le istruzioni di installazione per SAM CLI possono variare. Nel mio caso seguirò le specifiche per l’installazione su Windows 11, basandomi sulla documentazione ufficiale di AWS.

Step 1 – Installazione di AWS SAM

Scarichiamo il programma di installazione di AWS SAM e seguiamo il programma di installazione scaricato e seguiamo le istruzioni.

Step 2 – Verichiamo l’installazione

Una volta installato AWS SAM verifichiamo che sia stato installato corretamente digitando il commando:

L’ouput dovrebbe essere come il seguente:

Sitografia

[1] Jeff Barr , AWS Serverless Application Model (SAM) Command Line Interface – Build, Test, and Debug Serverless Apps Locally, AWS,  6/10/2018
[2] Eric Johnson, The AWS Serverless Application Model CLI is now generally available, AWS, 21/07/2022