Nozioni di base / Esperienza pratica / ...
Filtro dei messaggi pubblicati negli argomenti con Amazon SNS e Amazon SQS
TUTORIAL
Panoramica
Questo tutorial illustra come utilizzare la funzione di filtro dei messaggi di Amazon Simple Notification Service (Amazon SNS). La funzione di filtro dei messaggi consente agli iscritti a un argomento SNS di ricevere solo il sottoinsieme di messaggi dell'argomento a cui sono interessati.
Nel nostro esempio, gli utenti visitano un sito Web per richiedere preventivi assicurativi. Queste richieste di preventivi possono riguardare l'assicurazione per un veicolo (ad esempio per auto e natanti), l'assicurazione sulla vita o altri tipi di assicurazione (ad esempio le polizze casa). Quando un utente richiede un preventivo assicurativo, la richiesta viene inoltrata a una serie di sistemi di back-end: un sistema di vendita gestisce l'assicurazione dei veicoli per auto e natanti, un altro sistema di vendita gestisce l'assicurazione sulla vita e un sistema di analisi elabora tutte le richieste di preventivo.
Come abbiamo visto nel Tutorial su come Inviare notifiche di eventi in fanout, adotteremo un modello di messaggistica fanout utilizzando Amazon SNS e Amazon Simple Queue Service (Amazon SQS) per disaccoppiare il sito Web dai sistemi di back-end. Per fare arrivare le notifiche di eventi al sistema di back-end corretto, puoi creare un argomento distinto per ciascun tipo di richiesta di preventivo, quindi aggiungere la logica di instradamento dei messaggi all’editore (publisher). Tuttavia, questa opzione può avere come esito entità di pubblicazione eccessivamente complicate, proliferazione degli argomenti e costi di esercizio aggiuntivi nel provisioning e nella gestione degli argomenti SNS. Il filtro dei messaggi Amazon SNS è molto più semplice.
In questo tutorial utilizzerai Amazon SNS e Amazon SQS. Entrambi i servizi sono compresi nel piano gratuito AWS.
Esperienza AWS
Tempo per il completamento
30 minuti
Costo per il completamento (con metriche gratuite)
Gratis
Costo per il completamento (con metriche avanzate)
Requisiti
Account AWS e bucket Amazon S3 popolato
Servizi utilizzati
Ultimo aggiornamento
23 agosto 2022
Implementazione
Passaggio 1: creazione di un argomento SNS
Il primo passaggio consiste nel creare un argomento Amazon SNS per pubblicare i messaggi ogni volta che vengono presentate delle richieste di preventivo su un sito Web di assicurazioni. Questi potenziali clienti possono essere correlati a polizza auto, polizza natanti o polizza vita.
a. Apri la Console di gestione AWS in una nuova finestra del browser, tenendo aperta questa guida dettagliata. Una volta caricata la schermata, inserisci nome utente e password per iniziare. Quindi, digita notification nella barra di ricerca e seleziona Simple Notification Service per aprire la console del servizio.
b. Se viene visualizzata la pagina di destinazione della console SNS, scegli Inizia da panoramica. Se non visualizzi questa pagina, vai al passaggio successivo.
c. Nel riquadro di navigazione, scegli Argomenti.
d. Scegli il pulsante Crea argomento.
e. Per Tipo, seleziona Standard. Nel campo Nome, inserisci Richieste-preventivi-assicurativi, quindi scorri verso il basso e scegli il pulsante Crea argomento.
f. Il nuovo argomento viene visualizzato nella pagina dei Dettagli dell'argomento.
Passaggio 2: creazione delle code Amazon SQS
a. Apri la console di Amazon SQS in una nuova finestra del browser. Se viene visualizzata la pagina di destinazione di Amazon SQS, scegli Crea coda. Altrimenti, vai al passaggio successivo.
b. Nella pagina Crea coda, lascia selezionato Standard per Tipo. Inserisci Preventivi-assicurativi-auto nel campo Nome, quindi scorri verso il basso e scegli il pulsante Crea coda.
c. La nuova coda viene visualizzata nella pagina dei Dettagli della coda. Seleziona Code per tornare alla pagina di destinazione delle Code.
d. Scegli il pulsante Crea coda e ripeti i passaggi 2b e 2c per creare due code aggiuntive utilizzando i seguenti nomi: Preventivi-assicurativi-vita e Tutti-i-preventivi.
e. Tutte e tre le code sono ora elencate nella console Amazon SQS.
Passaggio 3: sottoscrizione delle code all'argomento
Ora che hai creato tre code SQS, devi sottoscriverle all'argomento SNS che trasmette nuove richieste di preventivi assicurativi.
a. Dall'elenco delle code, seleziona la coda Tutti-i-preventivi.
Scegli Operazioni, quindi seleziona Sottoscrivi a un argomento Amazon SNS.
Se l'argomento SNS è stato creato da un altro account, puoi effettuarvi la sottoscrizione utilizzando il campo ARN argomento. Per ulteriori dettagli, consulta la documentazione di Amazon SNS o il post Integrazione di più account con SNS sul nostro blog.
c. Scegli Salva.
d. La coda è ora sottoscritta all'argomento SNS. Scegli Code per tornare alla pagina Code e ripetere i passaggi a-c per le code Preventivi-assicurativi-vita e Preventivi-assicurativi-auto.
Passaggio 4: assegnazione delle policy di filtro alle sottoscrizioni SNS
Le sottoscrizioni senza policy di filtro riceveranno tutti i messaggi pubblicati nell'argomento SNS, quindi per questo scenario non occorre impostare una policy di filtro per la coda Tutti-i-preventivi.
Seleziona il nome dell'argomento Richieste-preventivi-assicurativi nell'elenco.
b. Così facendo accederai alla pagina dei dettagli dell'argomento Richieste-preventivi-assicurativi, dove potrai visualizzare tutte le code SQS che hanno effettuato la sottoscrizione a questo argomento SNS. Seleziona la coda Preventivi-assicurativi-auto, quindi scegli Modifica.
c. Così facendo accederai alla pagina Modifica sottoscrizione. Seleziona la freccia a sinistra della Policy di filtro per le sottoscrizioni, quindi seleziona Abilitata per modificare la policy.
d. Nella finestra di dialogo visualizzata, inserici il seguente oggetto JSON nell'editor JSON:
{"insurance_type": ["car", "boat"]}
Scegli Salva le modifiche.
e. Viene visualizzato un messaggio che conferma che la policy del filtro della sottoscrizione è stata salvata con successo. Fai clic su Richieste-preventivi-assicurativi per tornare alla pagina dei dettagli dell'argomento,
f. Ora potrai ripetere il processo e aggiungere la policy di filtro alla seconda coda. Seleziona la coda Preventivi-assicurativi-vita e scegli Modifica.
g. Seleziona la freccia a sinistra della Policy di filtro per le sottoscrizioni, quindi seleziona Abilitata per modificare la policy.
h. Nella finestra di dialogo visualizzata, inserici il seguente oggetto JSON nell'editor JSON:
{"insurance_type": ["life"]}
Non è necessario impostare alcuna policy di filtro per la sottoscrizione relativa alla coda Tutti-i-preventivi. La mancanza di questa policy farà in modo che la coda riceva tutti gli eventi pubblicati in questo argomento.
Passaggio 5: pubblicazione dei messaggi nell'argomento
Mettiamolo alla prova. In questo passaggio, sarai in grado di simulare nuove richieste di preventivo assicurativo in arrivo dal tuo sito Web principale di generazione tramite la pubblicazione di messaggi nell'argomento.
a. Nella pagina degli argomenti Richieste-preventivi-assicurativi, scegli Pubblica messaggio.
2017 Volvo S60, Montreal
In Attributi del messaggio:
- Seleziona Stringa nel campo Tipo
- Inserisci insurance_type nel campo Nome
- Inserisci auto nel campo Valore
Fai clic su Pubblica messaggio.
c. Torni alla pagina degli argomenti Richieste-preventivi-assicurativi. Scegli di nuovo Pubblica messaggio.
d. Crea un secondo messaggio utilizzando i seguenti valori:
In Attributi del messaggio:
- Seleziona Stringa nel campo Tipo
- Inserisci insurance_type nel campo Nome
- Inserisci vita nel campo Valore
Fai clic su Pubblica messaggio.
e. Torni alla pagina degli argomenti Richieste-preventivi-assicurativi. Scegli di nuovo Pubblica messaggio.
Casa a schiera, 140 mq, Toronto
In Attributi del messaggio:
- Seleziona Stringa nel campo Tipo
- Inserisci insurance_type nel campo Nome
- Inserisci casa nel campo Valore
Fai clic su Pubblica messaggio.
Passaggio 6: verificare il recapito dei messaggi
È arrivato il momento di verificare che ogni tipo di richiesta di preventivo assicurativo sia stata indirizzata alla coda del messaggio Amazon SQS corrispondente, ispezionando i recapiti dei messaggi che si sono verificati.
a. Torna alla console di Amazon SQS. Seleziona la coda Preventivi-assicurativi-auto e scegli Invia e ricevi messaggi.
b. Scegli Esegui il polling dei messaggi.
c. Soltanto un messaggio è stato inserito in questa coda, relativo al preventivo di polizza auto (Richiesta di preventivo assicurativo n. 1). Una volta completato il processo di polling, visualizza il messaggio inserito nella coda selezionandolo in Messaggi.
d. Visualizza il messaggio, quindi scegli Fine per chiudere la finestra di dialogo.
e. Ripeti il processo per la seconda coda. Seleziona la coda Preventivi-assicurativi-vita e scegli Invia e ricevi messaggi.
f. Scegli Esegui il polling dei messaggi.
g. Soltanto un messaggio è stato spinto in questa coda, relativa al preventivo di polizza vita (Richiesta di preventivo assicurativo n. 2). Una volta completato il processo di polling, visualizza il messaggio inserito nella coda selezionandolo in Messaggi.
h. Visualizza il messaggio, quindi scegli Fine per chiudere la finestra di dialogo.
i. Infine, seleziona la coda Tutti-i-preventivi e scegli Invia e ricevi messaggi.
j. Scegli Esegui il polling dei messaggi.
k. In questo caso, tutti e tre i messaggi sono stati spinti in questa coda (Richiesta di preventivo assicurativo n. 1, 2 e 3).
Passaggio 7: eliminazione delle risorse
In questo passaggio, eliminerai le risorse che hai creato per questo tutorial, che includono un argomento, le sottoscrizioni e le code. Per evitare di ricevere addebiti non desiderati, è una best practice consigliata eliminare le risorse non utilizzate.
a. Nel pannello di navigazione della console Amazon SNS, seleziona Argomenti, quindi scegli il link all'argomento Richieste-preventivi-assicurativi.
b. Nella pagina dei dettagli dell'argomento Richieste-preventivi-assicurativi, seleziona ciascuna sottoscrizione e scegli Elimina.
c. Fai clic su Elimina nella finestra di dialogo per confermare l'eliminazione.
d. Nella pagina dei dettagli dell'argomento Richieste-preventivi-assicurativi, seleziona Elimina.
e. Per confermare l'eliminazione, digita delete me nella finestra di dialogo, quindi scegli Elimina.
f. Torna alla console di Amazon SQS. Seleziona ciascuna delle code utilizzate in questo tutorial e scegli Elimina.
g. Per confermare l'eliminazione, digita "eliminami" nella finestra di dialogo, quindi scegli Elimina.
Conclusioni
Ora puoi utilizzare il filtro dei messaggi in Amazon SNS per creare architetture pub/sub più semplici e lineari.
Questa funzionalità consente a coloro che hanno effettuato la sottoscrizione agli argomenti di Amazon SNS di ricevere in modo selettivo solo un sottoinsieme dei messaggi a cui sono interessati, invece di ricevere tutti i messaggi pubblicati per un argomento. Ciò ti consente di scaricare la logica di filtro dei messaggi dai tuoi sottoscritti e la logica di instradamento dei messaggi dai tuoi sistemi di pubblicazione.