Salve a tutti e bentornati in un nuovo tutorial di tooldech, in questo articolo di oggi parlerò di LocalStack, se non hai visto l’articolo precedente ti lascio il link per riprenderlo. Oggi impareremo come configurare Localstack per emulare AWS Bucket S3 in locale e collegare un’applicazione che carica dati su un bucket S3 creato su questo strumento.
Prima di procedere con il tutorial, se non avete presente cosa sia un bucekt s3 sarebbe meglio dare una lettura al sito ufficiale di aws che spiega nel dettaglio cosa sia ed a cosa serve questo particolare contenitore per caricare oggetti, qui il link aws che spiega cosa fa un bucket s3.
I Prequestiti:
Prima di iniziare questo tutorial bisogna aver settato correttamente alcuni strumenti ecco:
- DockerDesktop e aver funzionante l’estensione di LocalStack come è stato fatto nel primo tutorial affrontato qui sul sito.
- Installato Python.
- aws CLI per testare i servizi.
Step 1. Configurazione LocalStack su Docker Desktop
Questo passaggio è già stato affrontato non mi dilungherei molto però lascio una breve linea guida per avere tutti gli step in un unico articolo.
Installare Localstack come estensione di Docker Desktop
- Apri Docker Desktop.
- Vai nella sezione Extensions nel pannello di sinistra.
- Cerca Localstack e clicca su Install.Verifica dell’installazione
- Una volta installato, puoi avviare Localstack direttamente da Docker Desktop.
- Apri un terminale e digita il comando per vedere se i container sono attivi:
docker ps

Step 2: Creare un bucket S3 in Localstack
Configurare AWS CLI per Localstack
Prima di iniziare a costruire un bucket S3, bisogna configuare AWS CLI per Localstack andando a creare un file di configurazione di aws digitando il comando sul terminale .
aws configure

Una volta digitato aws configure, ti verranno chiesti dei parametri cosa molto importante inserisci qualsiasi stringa per gli AWS Access Key
, Secret Access Key
, Region e json.
In quanto Localstack non richiede credenziali reali.
Per endpoint S3 che andremo ad utilizzare sarà http://localhost:4566.
Questo indirizzo ip lo potete vedere nella immagine del docker ps.
Dopo aver settato le variabili di aws tramite AWS CLI, si va a creare il bucket S3 seguendo questo comando.
aws --endpoint-url=http://localhost:4566 s3 mb s3://my-local-bucket

Molto importante per esperienza la Camel case non è ammessa è ammessa invece la Kebab case.
Ecco il link che spiega le varie nomenclature per nominare file.
Andiamo a controllare che sia collegato correttamente.
aws --endpoint-url=http://localhost:4566 s3 ls

Il prossimo step sarà la creazione del codice per caricare sul bucket i file.
Step 3: Creare un’applicazione Python per caricare file su S3
In questo punto viene creato l’applicativo python per caricare i file.
Prima di procedere con lo spiegare il codice è utile installare tutte le librerie per far funzionare l’applicativo.
Le librerie che servono sono:
- Boto3 , questa libreria ci permette di interagire con AWS da Python.
Ci posizioniamo nella cartella dove vogliamo fare il progetto e sul terminale digitiamo il comando:
pip install boto3

N.B. Dovete aver installato pyhton sulla vostra macchina per digitare quel comando
Successivamente si scrive il codice python per caricare il file.

Nelle righe 6, 17 e 18 vanno inserite quelle variabili che avete inserito nella parte iniziale del aws configure.
Il file di testo che nel mio caso è un semplice .txt può essere qualsiasi altro formato esempio un pdf, json, doc, xlxs e altro.
Importante mettere il percorso corretto di dove si trova il file e il nome corretto del bucket che avete creato.
Una volta completato la creazione dello script si fa partire con il comando da terminale nella giusta root di progetto.
python upload.py

Possiamo controlare adesso se effettivamente è stato caricato il file di prova.
da terminale lanciando il comando:
aws --endpoint-url=http://localhost:4566 s3 ls s3://my-local-bucket

da web application di LocalStack:

Se abbiamo intenzione di vedere il contenuto basta cliccare sul file dalla web application e vi troverete il file scaricato.

Siamo arrivati alla fine di questo tutorial sul caricamento di un file su bucket S3 tramite LocalStack.
Adesso vi basta che chiudere il container per eliminare tutto e rifare da zero se volete.
Un grazie enorme per la lettura e per l’attenzione che date ai miei contenuti.
Ci vediamo al prossimo tutorial di tooldech a presto !