Questo tutorial illustra come implementare una soluzione di invio di messaggi in fan-out tramite Amazon Simple Notification Service (SNS) e Amazon Simple Queue Service (SQS). Nello scenario proposto, i messaggi vengono inviati tramite push agli iscritti al servizio, perciò non sarà più necessario verificare periodicamente o eseguire il polling degli aggiornamenti e verrà inoltre attivata l'elaborazione asincrona in parallelo dei messaggi da parte degli iscritti al servizio.
Per illustrare questo processo, supponiamo tu stia sviluppando un’applicazione nativa per il cloud che invia un messaggio Amazon SNS a un argomento ogni volta viene effettuato un ordine su un negozio online. Le code di Amazon SQS iscritte a tale argomento riceveranno ciascuna delle notifiche identiche per il nuovo ordine.
I servizi AWS usati in questo tutorial sono inclusi nel piano gratuito AWS.
Per inviare notifiche di eventi in fan-out è necessario avere un account AWS
Crea un account gratuitoIl piano gratuito AWS include 1.000.000 di pubblicazioni per Amazon Simple Notification Service e 1.000.000 di richieste di Amazon Simple Queue Service.
Visualizza i dettagli del piano gratuito di AWS »
Facendo clic qui, la Console di gestione AWS si aprirà in una nuova finestra del browser, così sarà possibile mantenere questa guida dettagliata aperta. Quando viene caricata la schermata, inserisci nome utente e password per iniziare. Quindi, digita notifica nella barra di ricerca e seleziona Simple Notification Service per aprire la console del servizio.
In questa fase, creerai un argomento Amazon SNS. Un argomento è un canale di comunicazione per inviare messaggi e iscrivervi le notifiche. In questo esempio, un’applicazione di e-commerce invierà un messaggio tramite push a un argomento Amazon SNS ogni volta che viene effettuato un nuovo ordine sul negozio online.
Ora che hai creato l’argomento con Amazon SNS, creerai delle code Amazon SQS da iscrivere all’argomento.
Quando iscrivi più code a un argomento, ciascuna coda riceve delle notifiche identiche ogni volta che un messaggio viene inviato tramite push all’argomento stesso. I servizi collegati a queste code possono quindi elaborare gli ordini in modo asincrono e parallelo.
Per esempio, un’istanza server di Amazon EC2 collegata a una delle code può gestire l’elaborazione o l’evasione dell’ordine, mentre l’altra istanza server può essere collegata a un warehouse di dati per analizzare tutti gli ordini ricevuti.
Per rendere il tutorial più semplice, non collegheremo le istanze EC2 alle code.
a. Fai clic qui per aprire la console di Amazon SQS in una nuova finestra del browser. Se viene visualizzata la pagina principale di SQS, fai clic su Comincia a usarlo. Altrimenti, procedi alla prossima fase.
b. La nostra prima coda archivierà gli ordini per un servizio di inventario fittizio che tiene traccia dei prodotti aggiungendoli o eliminandoli dall’inventario in base alle necessità e a seconda di ciascun ordine.
Sulla pagina Crea una nuova coda, digita Ordini-per-inventario nel campo del Nome della coda. Lascia la selezione Coda standard e fai clic su Crea rapidamente una coda.
Ora che hai creato due code Amazon SQS, devi iscriverle all’argomento Amazon SNS, il quale trasmette notifiche ai nuovi ordini.
b. Viene mostrata la scheda di dialogo Iscrivi a un argomento. Dalla lista a cascata Scegli un argomento, seleziona il tuo argomento Amazon SNS Nuovi-ordini.
Il tuo argomento SNS appare nella lista perché l’hai creato dallo stesso account che hai usato per creare le tue code Amazon SQS. Se l’argomento SNS viene creato da un altro account, puoi iscriverlo utilizzando l’ARN dell’argomento. Per maggiori dettagli, consulta la documentazione di Amazon SNS.
Lascia invariata la regione dell’argomento e fai clic su Iscrivi.
Le tue code sono ora iscritte all’argomento. In questa fase, simulerai un nuovo ordine tramite un’applicazione di e-commerce fittizia che invia un messaggio tramite push all’argomento riportando i dettagli dell’ordine.
b. Appare la paginaPubblica messaggio sull’argomento. Nella casella Oggetto, digita “Ordine 123-4567890-1234567”. Nel campo del Messaggio, inserisci il testo seguente per rappresentare un ordine fittizio:
1 x widget a 29,99 USD
2 x cavi widget a 4,99 USD
Fai clic su Pubblica messaggio. Appare ora una scheda di dialogo per la conferma.
Una volta che viene pubblicato un nuovo messaggio, Amazon SNS lo invierà a ogni endpoint iscritto all’argomento. In uno scenario di fan-out come questo riportato, gli endpoint sono le code Amazon SQS.
In questa fase, confermerai che le code hanno ricevuto la notifica di un nuovo ordine visualizzando il messaggio che l’argomento ha inviato alle code.
d. Nella colonna Corpo, fai clic su Maggiori dettagli. La casella Dettagli messaggio contiene un documento JSON con l’oggetto e il messaggio che hai pubblicato sull’argomento.
In questo modo, hai confermato che la coda Ordini-per-inventario ha ricevuto la notifica del nuovo ordine dall’argomento Nuovi ordini.
Fai clic su Chiudi.
e. Supponiamo che il nostro servizio di inventario fittizio abbia completato l’elaborazione del messaggio e che ora possiamo eliminare con sicurezza il messaggio dalla coda.
Fai clic su Elimina 1 messaggio. Per confermare, fai clic su Sì, elimina messaggi selezionati. Quindi, fai clic su Chiudi.
In questa fase, eliminerai le risorse che hai creato per questo tutorial, che includono le iscrizioni all’argomento, gli argomenti e le code. Per evitare di ricevere addebiti non desiderati, è una best practice consigliata eliminare le risorse non utilizzate.
b. Appare la finestra di dialogo di conferma Elimina. Digita cancellami nella finestra di dialogo e fai clic su Elimina. L’argomento e le sue iscrizioni vengono eliminate. Ora, puoi chiudere la finestra del browser con SNS (ma non disconnetterti, poiché dovrai eliminare le code nella console di SQS).
Hai appena implementato uno scenario di fan-out utilizzando Amazon SNS e Amazon SQS. Ora sei pronto per utilizzare Amazon SNS e Amazon SQS in combinazione per inviare messaggi alle applicazioni che richiedono notifiche immediate di un evento o per caricare i messaggi sulle code di Amazon SQS così che vengano successivamente elaborati da altre applicazioni.
Ora che hai imparato come implementare le notifiche di messaggi in fan-out utilizzando Amazon Simple Notification Service e Amazon Simple Queue Service, scegli una delle seguenti opzioni per approfondire l’invio di messaggi sul cloud in AWS.
Ulteriori informazioni
Ottieni una panoramica su funzionalità, componenti e casi d'uso per gli argomenti dei messaggi su Amazon Web Services (AWS). Visita la pagina Web di Amazon SNS »
Approfondisci
Esplora come permettere ad applicazioni, utenti finali e dispositivi di inviare e ricevere notifiche istantaneamente dal cloud. Consulta la documentazione »
Guardalo in azione
Scopri come clienti quali Capital One utilizzano Amazon SQS e Amazon SNS per separare e scalare applicazioni. Guarda il webinar »