Partage via


Utiliser Azure CLI pour créer une rubrique Service Bus et des abonnements à cette rubrique

Dans ce guide de démarrage rapide, vous allez utiliser Azure CLI pour créer une rubrique Service Bus, puis des abonnements à cette rubrique.

Présentation des rubriques et des abonnements Service Bus

Les rubriques et les abonnements Service Bus prennent en charge un modèle de communication de messagerie de publication et d'abonnement . Lors de l’utilisation de rubriques et d’abonnements, les composants d’une application distribuée ne communiquent pas directement entre eux ; ils échangent plutôt des messages via une rubrique, qui fait office d’intermédiaire.

TopicConcepts

Contrairement aux files d’attente Service Bus, où chaque message est traité par un seul consommateur, les rubriques et les abonnements fournissent une forme de communication « un-à-plusieurs », à l’aide d’un modèle de publication et d’abonnement. Il est possible d’inscrire plusieurs abonnements à une rubrique. Lorsqu’un message est envoyé à une rubrique, il est alors mis à disposition de chaque abonnement pour être géré ou traité indépendamment. Un abonnement à une rubrique ressemble à une file d’attente virtuelle qui reçoit des copies des messages envoyés à la rubrique. Vous pouvez éventuellement inscrire des règles de filtre pour une rubrique par abonnement, ce qui vous permet de filtrer ou de restreindre les messages d’une rubrique reçus en fonction des abonnements à une rubrique.

Les rubriques et les abonnements Service Bus vous permettent de mettre votre infrastructure à l’échelle pour traiter de nombreux messages parmi un grand nombre d’utilisateurs et d’applications.

Prérequis

Si vous n'avez pas d'abonnement Azure, vous pouvez créer un compte gratuit avant de commencer.

Dans ce guide de démarrage rapide, vous utilisez Azure Cloud Shell que vous pouvez lancer après vous être connecté au portail Azure. Pour plus d’informations sur Azure Cloud Shell, consultez Vue d’ensemble d’Azure Cloud Shell. Vous pouvez également installer et utiliser Azure PowerShell sur votre machine.

Créer une rubrique Service Bus et des abonnements

Chaque abonnement à une rubrique peut recevoir une copie de chaque message. Les rubriques sont entièrement compatibles au niveau de la sémantique et du protocole avec les files d’attente Service Bus. Les rubriques Service Bus prennent en charge un large éventail de règles de sélection avec des conditions de filtre et avec des actions facultatives qui permettent de définir ou de modifier les propriétés des messages. Chaque fois qu’une règle correspond, elle génère un message. Pour en savoir plus sur les règles, filtres et actions, consultez ce lien.

  1. Connectez-vous au portail Azure.

  2. Lancez Azure Cloud Shell en sélectionnant l’icône illustrée dans l’image suivante. Basculez en mode Bash si Cloud Shell est en mode PowerShell.

  3. Exécutez la commande suivante pour créer un groupe de ressources Azure. Mettez à jour le nom et l’emplacement du groupe de ressources si vous le souhaitez.

    az group create --name MyResourceGroup --location eastus
    
  4. Exécutez la commande suivante pour créer un espace de noms de messagerie Service Bus. Mettez à jour le nom de l’espace de noms pour qu’il soit unique.

    namespaceName=MyNameSpace$RANDOM
    az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
    
  5. Exécutez la commande suivante pour créer une rubrique dans l’espace de noms.

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Créez le premier abonnement à la rubrique.

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Créez le deuxième abonnement à la rubrique.

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Créez le troisième abonnement à la rubrique.

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Créez un filtre sur le premier abonnement avec un filtre utilisant des propriétés personnalisées (StoreId est Store1, Store2 ou Store3).

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --subscription-name S1 --name MyFilter --filter-sql-expression "StoreId IN ('Store1','Store2','Store3')"    
    
  10. Créez un filtre sur le deuxième abonnement avec un filtre utilisant des propriétés du client (StoreId = Store4)

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name myTopic --subscription-name S2 --name MySecondFilter --filter-sql-expression "StoreId = 'Store4'"    
    
  11. Créez un filtre sur le troisième abonnement avec un filtre utilisant des propriétés du client (StoreId pas dans Store1, Store2, Store3 ou Store4).

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --subscription-name S3 --name MyThirdFilter --filter-sql-expression "StoreId NOT IN ('Store1','Store2','Store3', 'Store4')"     
    
  12. Exécutez la commande suivante pour obtenir la chaîne de connexion principale de l’espace de noms. Vous utilisez cette chaîne de connexion pour vous connecter à la file d’attente et envoyer et recevoir des messages.

    az servicebus namespace authorization-rule keys list --resource-group MyResourceGroup --namespace-name $namespaceName --name RootManageSharedAccessKey --query primaryConnectionString --output tsv    
    

    Notez la chaîne de connexion et le nom de la rubrique. Vous les utiliserez pour envoyer et recevoir des messages.

Étapes suivantes

Pour savoir comment envoyer des messages à une rubrique et recevoir ces messages par le biais d’un abonnement, consultez l’article correspondant au langage de programmation de votre choix dans la table des matières.