Esercitazione: Inviare messaggi al bus di servizio di Azure

Completato

In questa unità viene creata un'applicazione Spring Boot che invia messaggi a una coda del bus di servizio di Azure. I passaggi seguenti sono completati in locale.

Creare un progetto Spring Boot

Per creare un progetto Spring Boot, si usa Spring Initializr con la riga di comando seguente:

curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=web -d baseDir=spring-sender-application -d bootVersion=3.3.0.RELEASE -d javaVersion=1.8 | tar -xzvf -

Inviare messaggi a una coda del bus di servizio

A questo punto, è possibile inviare messaggi a una coda del bus di servizio.

Aggiungere la dipendenza Maven per lo starter di Spring Boot del bus di servizio

Nel file pom.xml in spring-sender-application aggiungere il comando seguente sotto le dipendenze:

		<!-- https://mvnrepository.com/artifact/com.azure.spring/spring-cloud-azure-starter-servicebus-jms -->
		<dependency>
		    <groupId>com.azure.spring</groupId>
		    <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
		    <version>5.18.0</version>
		</dependency>

Aggiungere i parametri di configurazione

  1. Nella cartella spring-sender-application\src\main\resources, modificare il file application.properties e aggiungere i parametri seguenti:

    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    spring.jms.servicebus.pricing-tier=premium
    
  2. Impostare la proprietà spring.jms.servicebus.connection-string sulla stringa di connessione allo spazio dei nomi del bus di servizio salvato in precedenza.

Aggiungere codice per inviare messaggi al bus di servizio

Viene quindi aggiunta la logica di business per l'invio di messaggi a una coda del bus di servizio.

Nella directory src/main/java/com/example/demo creare un file SendController.java con il contenuto seguente:

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SendController {
    
    private static final String queue = "test-queue-jms";

    @Autowired
    private JmsTemplate jmsTemplate;

    @GetMapping("/messages")
    public String postMessage(@RequestParam String message) {
        jmsTemplate.send(queue, s -> s.createTextMessage(message));
        return message;
    }
}

Eseguire l'applicazione in locale

  1. Tornare alla radice della cartella di esempio spring-sender-application in cui si trova il file pom.xml ed eseguire il comando seguente per avviare l'applicazione Spring Boot. Questo passaggio presuppone che sia stato installato mvn nel computer Windows e che si trovi in PATH.

    mvn spring-boot:run
    
  2. Dopo l'avvio dell'applicazione, è possibile selezionare i collegamenti seguenti per inviare messaggi alla coda del bus di servizio.

    http://localhost:8080/messages?message=Hello
    
    http://localhost:8080/messages?message=HelloAgain
    
    http://localhost:8080/messages?message=HelloOnceAgain
    

    È possibile modificare il valore stringa nel parametro di query del messaggio e inviare qualsiasi testo alla coda del bus di servizio.

    Il browser visualizza qualsiasi elemento passato come parametro della stringa di query del messaggio, a indicare che il bus di servizio accetta il messaggio.

Visualizzare i messaggi nella coda del bus di servizio

Nota

Anche se la visualizzazione dei messaggi aiuta ad avere una panoramica dell'invio, questo passaggio è facoltativo.

La ricezione di questi messaggi verrà illustrata nel passaggio successivo di questa esercitazione.

È possibile visualizzare i messaggi in Service Bus Explorer nel portale di Azure:

  1. Nel portale di Azure selezionare Code nel menu a sinistra in Entità.

  2. Selezionare la coda appropriata. Ad esempio, la coda per questa demo è test-queue-jms.

  3. Nel riquadro sinistro selezionare Service Bus Explorer.

  4. Selezionare Visualizza in anteprima dall'inizio. Verranno visualizzati tutti e tre i messaggi inviati usando i comandi HTTP.

    Screenshot of the Service Bus explorer peek experience.

  5. Selezionare un messaggio per visualizzare il corpo del messaggio nel riquadro inferiore.

    Screenshot of the Service Bus explorer with peeked messages.