Implementazione di un'applicazione Web di container su Amazon Lightsail

GUIDA ALLE OPERAZIONI DI BASE

Modulo 1: Preparazione del container

In questo modulo verrà creata un'applicazione Web di base con container

Introduzione

In questo modulo, verrà revisionata l'applicazione di esempio fornita con questa guida.  Verrà creato un container per eseguire in locale l'applicazione Web fornita e per testarla sul laptop locale prima dell'implementazione nel cloud.

Gli argomenti affrontati

  • Costruire un container per un'applicazione Web esistente
  • Eseguire un container per testare un'applicazione in locale

Prerequisiti

Prima di iniziare questa guida, avrai bisogno di:

 Tempo richiesto per il completamento

10 minuti

 Prerequisiti del modulo

  • Account AWS con accesso da amministratore**
  • Browser consigliato: l'ultima versione di Chrome o Firefox

[**]Gli account creati nelle ultime 24 ore potrebbero non avere ancora accesso a tutti servizi richiesti per questo tutorial.

Implementazione

Creazione dell'app client

L'applicazione Web fornita nella cartella del codice è un'applicazione Web sviluppata con il framework di applicazioni Flask per Python.

In una nutshell, il framework Flask include un mini server che riceve le richieste HTTP, un meccanismo di routing per associare richieste specifiche (un verbo HTTP e un /percorso) per il codice Python e un motore di creazione modelli per renderere l'HTML finale.

Una best practice è avere un server Web dedicato davanti all'applicazione Flask. Il server Web è configurato per utilizzare contenuto statico, come immagini, fogli di stile (CSS) e file JavaScript (JS). Il server Web inoltra tutte le altre richieste all'applicazione Flask. Per questa guida, utilizzeremo il server Web Nginx.

La comunicazione tra Nginx e l'app Flask avvine tramite il protocollo uWSGI. Il componente uWSGI è fornito da Flask.

La configurazione dell'applicazione è descritta in questa immagine.

gsg-build-lightsail-5

L'applicazione è costituita dai seguenti file:

  • application.py è il nucleo dell'applicazione, definisce la logica, la comunicazione con un back-end (se presente) e così via.
  • Pipfile riporta le dipendenze Python dell'applicazione Web.
  • Dockerfile configura il container. Inizia da un container Nginx ufficiale, aggiunge Python, Flask e le relative dipendenze. Quindi, copia il file di configurazione nginx e uno script di avvio.
  • nginx-app.conf è il file di configurazione di Nginx. Assicura che il contenuto statico sia utilizzato da Nginx mentre le altre richieste sono inviate a uWSGI/Flask
  • start.sh avvia i daemon Nginx e uWSGI.

L'applicazione è un'applicazione Web semplice che annuncia l'avvio di un nuovo servizio o prodotto e che ha la forma per acquisire pre-registrazioni.

Scarica il progetto

Per creare e testare il container, scarica una copia locale del progetto.

Apri un terminale ed esegui il comando:

git clone https://github.com/aws-developer-center/dev-center-guides/

cd dev-center-guides/GS_003_web_app_lightsail/code

Da questo punto in poi, in tutti i comandi si assume che ci si trovi in questa directory.

Creazione del container

Ora che hai una panoramica dei componenti principali dell'applicazione e di come funzionano insieme, costruiamo un container.

Per creare l'applicazione all'interno di un container, utilizza il terminal e digita i seguenti comandi:

# Assuming you navigated to the application directory as instructed above 
# Make sure to include the space and period after signup in the below command

docker build -t demo-flask-signup .


Dopo pochi minuti (a seconda della larghezza di banda Internet disponibile) verrà creato il container.

Puoi visualizzare tutte le immagini del container sul tuo sistema usando il seguente comando:

docker images

# It should output something similar to 

REPOSITORY          TAG       IMAGE ID       CREATED          SIZE
demo-flask-signup   latest    26d7924c5980   28 minutes ago   640MB
(...)

Test del container

Per testare il container sulla macchina locale, per prima cosa avviare il container, quindi far sì che un browser vi faccia riferimento.

docker run -p 8080:80               \
           --rm                     \
           -v ~/.aws:/root/.aws     \
           demo-flask-signup:latest

Le opzioni passate al comando docker run sono

  • -p 8080:80 per eseguire il bridge della porta TCP 8080 della macchina locale alla porta 80 del container (Nginx)
  • --rm per indicare a docker la rimozione del container quando viene arrestato
  • -v ~/.aws:/root/.aws per associare la configurazione di AWS CLI della macchina locale nella directory ~/.aws alla directory del container /root/.aws
  • Infine, demo-flask-signup:latest - il nome e il tag del container appena generato.

Una volta che il container è in esecuzione, aprire un browser e passare al sito http://localhost:8080. Dovrebbe essere visualizzata la schermata home dell'applicazione, come riportato di seguito.

gsg-build-lightsail-1

Congratulazioni, a questo punto è disponibile un container pronto per l'implementazione nel cloud.

Conclusioni

In questo primo module, abbiamo costruito un'applicazione di container di base e l'abbiamo eseguita per essere certi che funzionasse. Nel modulo successivo, impareremo a creare un servizio container di Amazon Lightsail.

A seguire: Creazione dell'infrastruttura

Facci sapere com'è andata.

Grazie per il tuo feedback
Siamo contenti che questa pagina ti sia stata d’aiuto. Vuoi condividere ulteriori dettagli per aiutarci a continuare a migliorare?
Chiudi
Grazie per il tuo feedback
Ci dispiace che questa pagina non ti sia stata d'aiuto. Vuoi condividere ulteriori dettagli per aiutarci a continuare a migliorare?
Chiudi