/ / Créer un sujet ServiceBus s'il n'existe pas déjà - c #, azureservicebus

Créer un sujet ServiceBus s'il n'existe pas déjà - c #, azureservicebus

Microsoft a mis à jour sa bibliothèque client .NET ServiceBus et sa documentation est actuellement divisée entre WindowsAzure.ServiceBus paquet et le nouveau Microsoft.Azure.ServiceBus paquet. J'aime le nouveau package, car il est beaucoup plus propre et a moins de dépendances. Dans l'ancien package, nous avions des méthodes comme celles-ci:

if (!namespaceManager.TopicExists(topicName))
{
var topic = new TopicDescription(topicName);
namespaceManager.CreateTopic(topic);
}

La documentation pour créer un sujet par programmation utilise toujours l'ancien package, avec le code ci-dessus. le NamespaceManager classe n'est pas disponible dans le nouveau package, alors comment puis-je obtenir l'équivalent de cela?

Réponses:

3 pour la réponse № 1

Sur le Repos Github azur-service-bus-dotnet, ils expliquent comment gérer les entités de bus de service:

  • Puis-je gérer des entités de bus de service avec cette bibliothèque?:

    La méthode standard de gestion des ressources Azure consiste à utiliser Azure Resource Manager. Pour utiliser les fonctionnalités qui existaient auparavant dans la bibliothèque du client .NET Framework Service Bus, vous devrez utiliser le Microsoft.Azure.Management.ServiceBus bibliothèque. Cela permettra aux cas d'utilisation de créer / lire / mettre à jour / supprimer dynamiquement des ressources.

Il existe un exemple d'utilisation de cette bibliothèque:

vous devez installer ces paquets:

  • Microsoft.Azure.Management.ServiceBus
  • Microsoft.Azure.Management.ResourceManager
  • Microsoft.IdentityModel.Clients.ActiveDirectory

La partie intéressante pour vous si vous voulez créer un sujet. Notez que vous n'avez pas besoin de vérifier si le sujet existe. Le gestionnaire de ressources Azure ne met à jour la ressource que si elle existe déjà.

// On you"ve got the ServiceBusManagementClient
ServiceBusManagementClient sbClient = ...

sbClient.Topics.CreateOrUpdateAsync("resource group name", "namespace name", "topic name",
new Microsoft.Azure.Management.ServiceBus.Models.SBTopic());

1 pour la réponse № 2

Il y a aussi une option future si vous pouvez attendre - NamespaceManager en tant que paquet autonome décrit dans le numéro suivant. le options qu'il supportera sont également répertoriés dans le numéro.

  • Get - limité à existe vérifier et donner des métadonnées
  • GetRuntimeInformation (Obtient tous les décomptes et le dernier état, Nombre approximatif, précis dans les 10 secondes)
  • GetQueueNames, GetTopicNames (Répertorier les noms d'entité)
  • Créer une entité
  • Supprimer une entité
  • Mise à jour (besoin de détails sur les métadonnées à mettre à jour, peut être fait pendant la mise en œuvre)
  • FindOrCreate (Upsert - la file d'attente n'a pas été créée)
  • UpdateOrCreate (Upsert)

Si vous aimez la facilité de NamespaceManager, alors la peine de suivre le problème.