Exercice - Envoyer des messages à Azure Service Bus

Effectué

Dans cette unité, vous créez une application Spring Boot qui envoie des messages à une file d’attente Azure Service Bus. Effectuez les étapes suivantes localement.

Créer un projet Spring Boot

Pour créer notre projet Spring Boot, nous allons utiliser Spring Initializr avec la ligne de commande suivante :

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 -

Envoyer des messages à une file d’attente Service Bus

Envoyons à présent des messages à une file d’attente Service Bus.

Ajouter la dépendance Maven pour Service Bus Spring Boot Starter

Dans le fichier pom.xml de votre spring-sender-application, ajoutez la commande suivante sous les dépendances :

		<!-- 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>

Ajouter les paramètres de configuration

  1. Dans le dossier spring-sender-application\src\main\resources, modifiez le fichier application.properties, et ajoutez les paramètres suivants :

    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    spring.jms.servicebus.pricing-tier=premium
    
  2. Définissez la propriété spring.jms.servicebus.connection-string sur la chaîne de connexion sur votre espace de noms Service Bus, que vous avez enregistré précédemment.

Ajouter du code pour envoyer des messages à Service Bus

Ensuite, nous allons ajouter la logique métier pour envoyer des messages à une file d’attente Service Bus.

Dans le répertoire src/main/java/com/example/demo, créez un fichier SendController.java avec le contenu suivant :

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;
    }
}

Exécuter localement l’application

  1. Revenez à la racine de l’exemple de dossier spring-sender-application où se trouve le fichier pom.xml, et exécutez la commande suivante pour démarrer votre application Spring Boot. Cette étape suppose que vous avez installé mvn sur votre ordinateur Windows à l’emplacement PATH.

    mvn spring-boot:run
    
  2. Une fois le démarrage de l’application terminé, vous pouvez sélectionner les liens suivants pour envoyer des messages à la file d’attente Service Bus.

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

    Vous pouvez changer la valeur de chaîne dans le paramètre de requête de message et envoyer n’importe quel texte à la file d’attente Service Bus.

    Le navigateur affiche tout ce qui est passé en tant que paramètre de chaîne de requête de message, ce qui implique que le Service Bus accepte le message.

Consulter les messages dans la file d’attente Service Bus

Notes

Même si l’affichage des messages permet de comprendre le côté envoi des messages, cette étape est facultative.

Ces messages seront reçus à l’étape suivante de ce tutoriel.

Vous pouvez continuer et afficher les messages dans Service Bus Explorer dans le portail Azure :

  1. De retour dans le Portail Azure, sélectionnez Files d’attente dans le menu de gauche sous Entités.

  2. Sélectionnez la file d’attente appropriée. Par exemple, dans cette démonstration, la file d’attente est test-queue-jms.

  3. Dans le volet de gauche, sélectionnez Service Bus Explorer.

  4. Sélectionnez Aperçu depuis le début. Vous devriez voir les trois messages que vous avez envoyés à l’aide de commandes HTTP.

    Screenshot of the Service Bus explorer peek experience.

  5. Sélectionnez un message pour afficher le corps du message dans le volet inférieur.

    Screenshot of the Service Bus explorer with peeked messages.