Esercitazione: Rispondere agli eventi bus di servizio di Azure ricevuti tramite Griglia di eventi di Azure usando Funzioni di Azure
Questa esercitazione descrive come rispondere agli eventi del bus di servizio di Azure ricevuti tramite Griglia di eventi di Azure usando Funzioni di Azure e App per la logica di Azure.
In questa esercitazione apprenderai a:
- Creare uno spazio dei nomi del bus di servizio
- Preparare un'applicazione di esempio per inviare messaggi
- Inviare messaggi all'argomento del bus di servizio
- Ricevere messaggi usando App per la logica
- Configurare una funzione di test in Azure
- Connettere la funzione e lo spazio dei nomi tramite Griglia di eventi
- Ricevere messaggi usando Funzioni di Azure
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Creare uno spazio dei nomi del bus di servizio
Seguire le istruzioni in questa esercitazione: Guida introduttiva: Usare il portale di Azure per creare un argomento e sottoscrizioni bus di servizio all'argomento per eseguire le attività seguenti:
- Creare uno spazio dei nomi del bus di servizio Premium.
- Ottenere la stringa di connessione.
- Creare un argomento del bus di servizio.
- Creare una sottoscrizione dell'argomento. Per questa esercitazione è richiesta una sola sottoscrizione, quindi non è necessario creare sottoscrizioni S2 e S3.
Inviare messaggi all'argomento del bus di servizio
In questo passaggio si usa un'applicazione di esempio per inviare messaggi all'argomento del bus di servizio creato nel passaggio precedente.
Clonare il repository azure-service-bus di GitHub o scaricare il file ZIP ed estrarre i file da esso.
In Visual Studio passare alla cartella \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 e quindi aprire il file SBEventGridIntegration.sln .
Nella finestra Esplora soluzioni espandere il progetto MessageSender e selezionare Program.cs.
Sostituire
<SERVICE BUS NAMESPACE - CONNECTION STRING>
con la stringa di connessione allo spazio dei nomi del bus di servizio e<TOPIC NAME>
con il nome dell'argomento.const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>"; const string TopicName = "<TOPIC NAME>";
Compilare ed eseguire il programma per inviare 5 messaggi di test (
const int numberOfMessages = 5;
) all'argomento del bus di servizio.
Prerequisiti aggiuntivi
Installare Visual Studio 2022 e includere il carico di lavoro Sviluppo di Azure. Questo carico di lavoro include gli strumenti di Funzioni di Azure, necessari per creare, compilare e distribuire progetti di Funzioni di Azure in Visual Studio.
Distribuire l'app per le funzioni
Nota
Per altre informazioni sulla creazione e sulla distribuzione di un'app di Funzioni di Azure, vedere Sviluppare Funzioni di Azure con Visual Studio
Aprire il file ReceiveMessagesOnEvent.cs dal progetto FunctionApp1 della soluzione SBEventGridIntegration.sln.
Sostituire
<SERVICE BUS NAMESPACE - CONNECTION STRING>
con la stringa di connessione allo spazio dei nomi del bus di servizio. Dovrebbe essere la stessa di quella usata nel file Program.cs del progetto MessageSender nella stessa soluzione.Fare clic con il pulsante destro del mouse su FunctionApp1 e scegliere Pubblica.
Nella pagina Pubblica selezionare Avvia. Questi passaggi potrebbero essere diversi da quello visualizzato, ma il processo di pubblicazione dovrebbe essere simile.
Nella pagina Destinazione della procedura guidata Pubblica selezionare Azure per Destinazione.
Nella pagina Destinazione specifica selezionare App per le funzioni di Azure (Windows).
Nella pagina Istanza di Funzioni selezionare Crea una nuova istanza di Funzioni di Azure.
Nella pagina App per le funzioni (Windows) seguire questa procedura:
- Immettere un nome per l'app per le funzioni.
- Selezionare una sottoscrizione di Azure.
- Selezionare un gruppo di risorse esistente o crearne uno nuovo. Per questa esercitazione, selezionare il gruppo di risorse che include lo spazio dei nomi del bus di servizio.
- Selezionare un tipo di piano per il servizio app.
- Selezionare una posizione. Selezionare la stessa località dello spazio dei nomi del bus di servizio.
- Selezionare un account di Archiviazione di Azure esistente oppure selezionare Nuovo per crearne uno nuovo da usare con l'app per le funzioni.
- Selezionare Crea per creare l'app per le funzioni.
Nella pagina Istanza di Funzioni della procedura guidata Pubblica selezionare Fine.
Nella pagina Pubblica in Visual Studio selezionare Pubblica per pubblicare l'app per le funzioni in Azure.
Nella finestra Output visualizzare i messaggi relativi a compilazione e pubblicazione e verificare che entrambe le operazioni siano riuscite.
Nella sezione Hosting della pagina Pubblica selezionare ... (puntini di sospensione) e selezionare Gestisci in portale di Azure.
Nella pagina App per le funzioni del portale di Azure selezionare Funzioni nel menu sinistro e verificare che vengano visualizzate due funzioni:
Selezionare EventGridTriggerFunction nell'elenco. È consigliabile usare il trigger di Griglia di eventi in Funzioni di Azure, perché offre alcuni vantaggi in più rispetto al trigger HTTP. Per i dettagli, vedere Funzione di Azure come gestore degli eventi di Griglia di eventi.
Nella pagina Funzione per EventGridTriggerFunction selezionare Monitoraggio nel menu sinistro.
Selezionare Configura per configurare Application Insights in modo da acquisire il log di chiamate. Usare questa pagina per monitorare le esecuzioni della funzione dopo aver ricevuto eventi del bus di servizio da Griglia di eventi.
Nella pagina Application Insights immettere un nome per la risorsa, selezionare una località e quindi selezionare OK.
Selezionare la funzione EventGridTriggerFunction in alto (menu della barra di navigazione) per tornare nella pagina Funzione.
Verificare che sia aperta la pagina Monitoraggio.
Mantenere aperta questa pagina in una scheda del Web browser. Verrà aggiornata in seguito per vedere le chiamate per questa funzione.
Connessione la funzione e lo spazio dei nomi bus di servizio tramite Griglia di eventi
In questa sezione la funzione e lo spazio dei nomi del bus di servizio vengono collegati tra loro tramite il portale di Azure.
Per creare una sottoscrizione di Griglia di eventi di Azure, seguire questa procedura:
Nel portale di Azure passare allo spazio dei nomi bus di servizio e quindi selezionare Eventi nel riquadro sinistro. Verrà aperta la finestra dello spazio dei nomi, con due sottoscrizioni di Griglia di eventi visualizzate nel riquadro destro.
Selezionare + Sottoscrizione di eventi sulla barra degli strumenti.
Nella pagina Crea sottoscrizione di eventi seguire questa procedura:
Immettere un nome per la sottoscrizione.
Immettere un nome per l'argomento di sistema. Gli argomenti di sistema sono argomenti creati per le risorse di Azure, ad esempio l'account di archiviazione di Azure e il bus di servizio di Azure. Per altre informazioni sugli argomenti di sistema, vedere Panoramica degli argomenti di sistema.
Selezionare Funzione di Azure per Tipo di endpoint e scegliere Selezionare un endpoint.
Nella pagina Seleziona funzione di Azure selezionare la sottoscrizione, il gruppo di risorse, l'app per le funzioni, lo slot e la funzione, quindi selezionare Conferma selezione.
Nella pagina Crea sottoscrizione di eventi passare alla scheda Filtri ed eseguire queste attività:
Selezionare Abilita filtro per l'oggetto
Immettere il nome della sottoscrizione dell'argomento del bus di servizio (S1) creato in precedenza.
Selezionare il pulsante Crea.
Passare alla scheda Sottoscrizione di eventi della pagina Eventi e verificare che la sottoscrizione di eventi sia presente nell'elenco.
Monitorare l'app per le funzioni
I messaggi inviati in precedenza all'argomento del bus di servizio vengono inoltrati alla sottoscrizione (S1). Griglia di eventi inoltra i messaggi presenti nella sottoscrizione alla funzione di Azure. In questo passaggio dell'esercitazione verificare che la funzione sia stata chiamata e visualizzare i messaggi informativi registrati.
Nella pagina dell'app per le funzioni di Azure passare alla scheda Monitoraggio se non è già attiva. Si dovrebbe vedere una voce per ogni messaggio pubblicato nell'argomento del bus di servizio. Se non si vedono, aggiornare la pagina dopo aver atteso alcuni minuti.
Selezionare la chiamata nell'elenco per visualizzare i dettagli.
È anche possibile usare la scheda Log della pagina Monitoraggio per visualizzare le informazioni di registrazione durante l'invio dei messaggi. Potrebbe verificarsi un ritardo, quindi attendere alcuni minuti per visualizzare i messaggi registrati.
Risoluzione dei problemi
Se dopo aver atteso qualche minuto e aggiornato la pagina non vengono visualizzate chiamate alla funzione, procedere come segue:
Verificare che il messaggio abbia raggiunto l'argomento del bus di servizio. Vedere il contatore di messaggi in ingresso nella pagina Argomento del bus di servizio. In questo caso, l'applicazione MessageSender è stata eseguita due volte, quindi vengono visualizzati 10 messaggi (5 per ogni esecuzione).
Verificare che nella sottoscrizione del bus di servizio non siano presenti messaggi attivi. Se in questa pagina non vengono visualizzati eventi, verificare che la pagina Sottoscrizione del bus di servizio non contenga valori in Numero di messaggi attivi. Se il numero di questo contatore è maggiore di zero, significa che per qualche motivo i messaggi nella sottoscrizione non vengono inoltrati alla funzione del gestore di sottoscrizione di eventi. Verificare di aver configurato correttamente la sottoscrizione di eventi.
Vengono inoltre visualizzati gli eventi recapitati nella pagina Eventi dello spazio dei nomi del bus di servizio.
È anche possibile verificare che gli eventi siano stati recapitati nella pagina Sottoscrizione di eventi. Per aprire questa pagina, selezionare la sottoscrizione di eventi nella pagina Eventi.
Passaggi successivi
- Altre informazioni su Griglia di eventi di Azure.
- Scopri di più sulle funzioni di Azure.
- Altre informazioni sulla funzionalità App per la logica del Servizio app di Azure.
- Altre informazioni sul bus di servizio di Azure.