Creazione di applicazioni serverless

con Amazon Aurora Serverless

Amazon Aurora è un database relazionale compatibile con MySQL e PostgreSQL che unisce le prestazioni e la disponibilità dei database enterprise alla semplicità e al costo ridotto dei database open source. Amazon Aurora Serverless è una configurazione di dimensionamento automatico on demand per Amazon Aurora (edizioni compatibili con MySQL e con PostgreSQL), in cui il database avvia, chiude e dimensiona automaticamente la capacità in base alle necessità dell'applicazione. Aurora Serverless consente di eseguire un database relazionale nel cloud senza dover gestire istanze database. È un'opzione semplice ed economica per carichi di lavoro poco frequenti, intermittenti o imprevedibili.

In questo tutorial imparerai a creare un’applicazione di elaborazione messaggi serverless con Amazon Aurora Serverless (edizione compatibile con PostgreSQL), Data API per Aurora Serverless, Amazon Lambda e Amazon Simple Notification Service (SNS). Il tutorial fornisce le istruzioni dettagliate per creare un database Aurora Serverless, utilizzare Data API per collegare il database a una funzione Amazon Lambda che utilizza i messaggi da Amazon SNS e archivia tali messaggi nel database Aurora Serverless.

Informazioni sul tutorial
Durata 10-20 minuti      
Costo Meno di 1 USD
Caso d'uso Database
Prodotti Amazon Aurora, Amazon SNS, AWS Lambda
Livello 100
Ultimo aggiornamento 24 settembre 2019

Fase 1: Creazione del database Aurora Serverless

1.1 - Apri un browser e passa alla Console Amazon RDS. Se hai già un account AWS, accedi alla console. Altrimenti, crea un nuovo account AWS per iniziare.

1.2 - Nell'angolo in alto a destra, seleziona la zona in cui lanciare il cluster di database Aurora.

1.3 - Fai clic su "Crea database" nella finestra di Amazon Aurora.

Prima di continuare, passa al flusso di creazione di un nuovo database:

Opzioni del motore

1.4 - In Motore del database, seleziona "Amazon Aurora".

1.5 - Come edizione seleziona “Amazon Aurora con compatibilità PostgreSQL”.

Caratteristiche del database

1.6 - Seleziona "Serverless".

Impostazioni

1.7 - Scegli un identificativo per il cluster di database Aurora, ad es. "database-1".

Impostazioni delle credenziali

1.8 - Seleziona un nome utente e una password per il tuo database.

Impostazioni di capacità

1.9 - Per l’unità di capacità massima di Aurora seleziona 2.

Connettività

1.10 - Seleziona il VPC in cui creare il database.

Dopo la creazione, non sarà possibile trasferire il database su un VPC diverso.

1.11 - Fai clic su "Configurazione aggiuntiva connettività”.

1.12 - Seleziona il valore predefinito per il gruppo di sottorete.

1.13 - In Gruppo di sicurezza VPC, seleziona "Crea nuovo”. In alternativa, se disponi di un gruppo di sicurezza che consente le connessioni TCP in entrata sulla porta 3306, puoi scegliere tale gruppo.

1.14 - Nel campo Nome nuovo gruppo di sicurezza VPC, digita "aurora-tutorial".

1.15 - Abilita l’API di dati.

Ulteriori configurazioni

1.16 - In “Protezione da eliminazione”, deseleziona "Abilita protezione da eliminazione”.

La best practice consiste nell’abilitare la protezione da eliminazione, ma se desideri eliminare il database alla fine del tutorial puoi lasciare questa opzione deselezionata.

Revisione e creazione

Dopo una rapida revisione di tutti i campi del modulo, potrai procedere.

1.17 - Fai clic su "Crea database".

Durante la creazione delle istanze, ti verrà mostrato un banner che spiega come ottenere le credenziali. È una buona occasione per memorizzare le credenziali da qualche parte, perché è l'unica volta che ti verrà mostrata questa password.

Richiama l’ARN del cluster

1.18 - Fai clic sul nome del database.

1.19 - Nella scheda “Configurazione”, copia l’ARN del cluster e tienilo a portata di mano. Ne avrai bisogno successivamente.

Collegati al database

1.20 - Apri il pannello sulla sinistra e fai clic su “Editor di query”.

1.21 - Seleziona “database-1”, specifica “postgres” come nome utente e digita la password creata in precedenza, quindi digita “postgres” come nome del database.

1.22 - Fai clic su “Collegati al database”

1.23 - A questo punto potrai fare clic su “Esegui” ed eseguire la query di esempio.

1.24 - Crea un database eseguendo la query sotto:

CREATE DATABASE tutorial;

1.25 - Fai clic su "Modifica database”.

1.26 - Cambia il database con quello appena creato.

1.27 - Crea una tabella con questa query:

CREATE TABLE sample_table(received_at TIMESTAMP, message VARCHAR(255));

Collegandoti al database con Editor di query, verrà creata una chiave segreta che dovrai utilizzare successivamente con la tua funzione Lambda. Lascia aperta questa scheda in quanto dovrai eseguire delle query alla fine del tutorial.

Copia l’ARN della chiave segreta

Apri una nuova scheda e passa a AWS Secrets Manager. Quindi completa le fasi seguenti per richiamare l’ARN della chiave segreta. 

1.28 - Trova la chiave segreta contenente “RDS database postgres credentials for database-1”.

1.29 - Dopo aver fatto clic sul nome della chiave segreta, copiane l’ARN e tienilo a portata di mano.

Fase 2: Creazione di un ambiente AWS Cloud9

Apri una nuova scheda e passa alla Console AWS Cloud9. Quindi, segui la procedura per creare un nuovo ambiente. 

2.1 - Fai clic su “Crea ambiente”:

2.2 - Assegna un nome al nuovo ambiente e fai clic su “Fase successiva”.

2.3 - Scorri verso il basso e fai clic su “Fase successiva”

2.4 - Fai clic su “Crea ambiente”.

2.5 - Una volta pronto l’ambiente, fai clic su “Crea una funzione Lambda”.

2.6 - Digita “auroratest” come nome per la funzione. Quindi fai clic su “Successivo”.

2.7 - Seleziona il blueprint “empty-python”e fai clic su “Successivo”.

2.8 - Nelle schermate seguenti, fai clic su “Successivo”, “Successivo”, quindi su “Fine”.

A questo punto l’ambiente è pronto ed è disponibile un blueprint per una funzione Lambda.

Prima di iniziare a creare il codice, dovrai configurare alcune autorizzazioni, come descritto nella Fase 3. Lascia aperto questo ambiente e utilizza le altre schede per completare le fasi successive.

Fase 3: Configurazione delle autorizzazioni

Apri una nuova scheda e passa a Console AWS IAM. Quindi, segui la procedura per assegnare le autorizzazioni alla tua funzione Lambda.

3.1 - Fai clic su “Ruoli” e ricerca un ruolo che inizia con “cloud9-”.

3.2 - Seleziona il nome del ruolo, quindi fai clic su “Allega policy”.

3.3 - Seleziona la policy “AmazonRDSDataFullAccess“, quindi fai clic su “Allega policy”.

Verrà visualizzata una schermata con un banner verde chiaro che riporta che la policy è stata allegata correttamente.

Fase 4: Creazione della funzione AWS Lambda

Torna all’ambiente Cloud9 creato nella fase 2, quindi segui le istruzioni riportate.

4.1 - Passa alla directory auroratest emettendo il seguente comando nella console:

$ cd auroratest

4.2 - Installa la dipendenza boto3 eseguendo il comando riportato nella console:

$ pip install boto3 -t boto3

4.3 - Elimina il codice nel file lambda_function e al suo posto copiare questo codice di esempio.

4.4 - Sostituisci i valori di cluster_arn e secret_arn con i valori dell’ARN del cluster e l’ARN della chiave segreta ottenuti nelle fasi precedenti.

4.5 - Fai clic su “File > Salva”, quindi seleziona la tua funzione Lambda nel pannello di destra.

4.6 - Distribuisci la tua funzione Lambda facendo clic sulla freccia su.

Fase 5: Creazione di un argomento Amazon SNS

La tua funzione Lambda elaborerà i messaggi provenienti da Amazon Simple Notification Service (SNS), che offre messaggistica pubblica/secondaria per i microservizi e le applicazioni serverless.

In una nuova scheda, passa al Dashboard SNS e segui le istruzioni riportate:

5.1 - In “Nome argomento” specifica aurora-lambda-sns-test, quindi fai clic su “Fase successiva”.

5.2 - Lascia tutti i valori predefiniti e fai clic su “Crea argomento”.

Verrà visualizzato un banner verde che indica che l’argomento è stato creato correttamente.

5.3 - Copia l’ARN SNS e tienilo a portata di mano.

Lascia aperta questa scheda in quanto la dovrai utilizzare per pubblicare un messaggio una volta che la funzione Lambda sarà stata configurata per leggere dall’argomento creato.

Fase 6: Registrazione di una funzione AWS Lambda con l’argomento Amazon SNS

Passa alla Console di gestione AWS Lambda e segui le istruzioni riportate:

6.1 - Fai clic sul nome della funzione Lambda creata nella fase 4.

6.2 - Fai clic su “Aggiungi trigger”.

6.3 - Digita “SNS” e seleziona i servizi “SNS” dal menu a discesa.

6.4 - Specifica l’ARN SNS nel campo “Argomento SNS”.

6.5 - Abilita il trigger e fai clic su “Aggiungi”.

Fase 7: Pubblicazione del messaggio di test

Torna al Dashboard SNS e segui le istruzioni riportate:

7.1 - Fai clic su “Pubblica messaggio”.

7.2 - Immetti un qualsiasi valore per il campo “Oggetto”.

7.3 - Immetti un qualsiasi valore per il campo “Corpo”.

7.4 - Scorri verso il basso e fai clic su “Pubblica messaggio”

Una volta pubblicato il messaggio, questo sarà elaborato dalla tua funzione Lambda. Nella sezione successiva, verificherai il modo in cui i dati sono stati scritti nel database Aurora.

Verifica le modifiche al database

7.5 - Passa alla scheda in cui hai lasciato aperto l’Editor di query. Se hai chiuso la scheda, torna al Dashboard RDS e collegati all’Editor di query come descritto nella fase 1.20.

7.6 - Collegati al database “tutorial”.

7.7 - Seleziona tutti i record dalla tabella di esempio:

SELECT * FROM sample_table;

7.8 - Fai clic su “Esegui” e scorri verso il basso per visualizzare i risultati.

Tutto dovrebbe funzionare correttamente. Puoi provare a cambiare messaggi inviati tramite SNS oppure puoi modificare la funzione lambda_handler come preferisci

Fase 8: Eliminazione

Per completare questo tutorial, imparerai come eliminare il cluster di database Aurora quando non è più necessario insieme alla funzione Lambda, all'ambiente Cloud9, alla chiave segreta per la connessione al database e a tutti gli altri elementi rimanenti.

Elimina la funzione Lambda

8.1 - Passa alla Console di gestione AWS Lambda e seleziona la tua funzione Lambda.

8.2 - Fai clic su “Azioni > Elimina”.

Elimina l’argomento SNS

8.3 - Passa al Dashboard SNS e fai clic su “Argomenti” sulla sinistra.

8.4 - Seleziona l’argomento creato nella Fase 5 e fai clic su “Elimina”.

8.5 - Verrà richiesto di confermare l’eliminazione. Digita "delete me" e fai clic su "Elimina”.

Elimina l’ambiente Cloud9

8.6 - Passa alla console di AWS Cloud9 e seleziona l’ambiente creato per questo tutorial.

8.7 - Fai clic su “Elimina”.

8.8 - Quando richiesto di confermare, digita “Delete” e fai clic sul pulsante “Elimina”.

Elimina il database Aurora Serverless

8.9 - Passa alla Console Amazon RDS e seleziona il database creato per questo tutorial.

8.10 - Fai clic su “Azioni > Elimina”.

Ti sarà chiesto se desideri creare uno shapshot finale. Solitamente è una buona idea, ma ai fini di questo tutorial non è necessario.

8.11 - Quando richiesto di confermare, seleziona “No” alla richiesta di creare uno snapshot finale. Qundi seleziona “I acknowledge…” e fai clic su “Elimina cluster DB”.

Elimina la tua chiave segreta

8.12 - Passa a AWS Secrets Manager, individua la chiave segreta contenente “Credenziali di gestione database RDS per database-1”, e fare clic sul nome della chiave segreta.

8.13 - Fai clic su “Azioni > Elimina chiave segreta”.

8.14 - Le chiavi segrete non possono essere eliminate immediatamente. Il periodo di attesa minimo per una eliminazione pianificata è 7 giorni. Seleziona 7 giorni e fai clic su “Pianifica eliminazione”.

Elimina il tuo ruolo IAM

8.15 - Passa alla Console AWS IAM. Fai clic su “Ruoli” e ricerca un ruolo che inizia con “cloud9-”.

8.16 - Seleziona il ruolo e fai clic su “Elimina ruolo”.

8.17 - Quando richiesta la conferma, fai clic su “Sì, elimina”.

Congratulazioni

Hai creato un database Aurora Serverless database e lo hai collegato a una funzione AWS Lambda Function tramite Data API di Aurora. Hai configurato Amazon Simple Notification Service (SNS) come trigger per la funzione Lambda e i messaggi inviati tramite SNS sono stati elaborati ed archiviati nel database Aurora Serverless.

Questo tutorial è stato utile?

Grazie
Facci sapere cosa ti è piaciuto.
Spiacenti di non esserti stati d'aiuto
C'è qualcosa di obsoleto, ambiguo o approssimativo? Aiutaci a migliorare questo tutorial con il tuo feedback.

Ulteriori informazioni sulle funzionalità di Amazon Aurora

Scopri di più sulle funzionalità di Amazon Aurora con la Guida per l'utente di Amazon Aurora.

Best practice di Amazon Aurora

Consulta le best practice generali e le opzioni per utilizzare o eseguire la migrazione dei dati in un cluster di database Amazon Aurora.

Ulteriori informazioni sul serverless

Per ulteriori informazioni sulle applicazioni serverless, consulta la documentazione di AWS Lambda e la Guida per l’utente di Aurora.