Pubblicato il 21/01/2023 da alnao nella categoria AWS

Il servizio servless di coda gestita in AWS si chiama SQS e non è da confondere con il servizio SNS: nel primo caso si tratta di coda (Queue) di oggetti mentre il secondo è un servizio di notifiche (Notification) che può essere anche usato come coda di testi ma non di oggetti, inoltre il servizio di coda permette di avere un tempo di ritenzione/conservazione degli oggetti finché un consumatore non vi accede. Dalla console, nella procedura guidata di creazione bisogna inserire le proprietà base

  • nome della coda: visibile in console web e negli altri servizi (come le Lambda Function)
  • i tempi di timeout e retention period: è possibile impostare un tempo di ritenzione degli oggetti, cioè il tempo massimo di conservazione nella coda, al termine del quale gli oggetti non consumati vengono eliminati
  • la grandezza massima di un oggetto: di default è 256Kb ma può essere variata
  • la chiave di criptazione degli oggetti: se necessario un sistema di cifratura per gli oggetti quando scritti nella cosa
  • la politica di accesso IAM: si può selezionare tra quella basic o evoluta con un json, in ogni caso gestisce chi può scrivere e chi può consumare gli oggetti

Per la manutenzione da console web è possibile usare le funzionalità di “purge” e “send and retrive” per gestire manualmente gli oggetti nella cosa e nella console è disponibile anche la possibilità di consultare quanti e quali oggetti sono in coda consumandoli. E’ possibile anche gestire la sottoscrizione da SQS ad SNS in modo da generare una notifica quando un elemento viene inserito in una coda.

Ad occhi poco esperti, questo servizio potrebbe sembrare inutile ma, per chi sviluppa, risulta essere quasi indispensabile e necessario in caso di servizi asincroni, caso d’uso principale per questo servizio.

Un esempio completo di template CloudFormation con la definizione di una coda SQS e due semplici lambda per scrivere e consumare gli oggetti, può essere trovato al solito repository:

https://github.com/alnao/AWSCloudFormationExamples/tree/master/Esempio21sqs