/ / Utwórz temat ServiceBus, jeśli jeszcze nie istnieje - c #, azureservicebus

Utwórz temat ServiceBus, jeśli jeszcze nie istnieje - c #, azureservicebus

Firma Microsoft zaktualizowała swoją bibliotekę klientów .NET ServiceBus, a ich dokumentacja jest obecnie dzielona na starą WindowsAzure.ServiceBus pakiet i nowy Microsoft.Azure.ServiceBus pakiet. Podoba mi się nowy pakiet, ponieważ jest dużo czystszy i ma mniej zależności. W starym pakiecie mieliśmy następujące metody:

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

Dokumentacja do tworzenia tematu programowo nadal używa starego pakietu, z kodem jak wyżej. The NamespaceManager klasa nie jest dostępna w nowym pakiecie, więc jak mogę uzyskać odpowiednik tego?

Odpowiedzi:

3 dla odpowiedzi № 1

Na Gitubie Repo azure-service-bus-dotnet, wyjaśniają, jak zarządzać obiektami magistrali usług:

  • Czy mogę zarządzać obiektami magistrali usług z tą biblioteką?:

    Standardowym sposobem zarządzania zasobami Azure jest użycie Menedżer zasobów Azure. Aby skorzystać z funkcjonalności, która wcześniej istniała w bibliotece klienta usługi .NET Framework Service Bus, należy użyć skrótu Microsoft.Azure.Management.ServiceBus biblioteka. Umożliwi to korzystanie z przypadków użycia, które dynamicznie tworzą / odczytują / aktualizują / usuwają zasoby.

Oto przykład, jak korzystać z tej biblioteki:

musisz zainstalować te pakiety:

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

Ciekawa część, jeśli chcesz stworzyć temat. Zauważ, że nie musisz sprawdzać, czy dany temat istnieje. Menedżer zasobów Azure aktualizuje tylko ten zasób, jeśli już istnieje.

// 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 dla odpowiedzi nr 2

Istnieje również opcja przyszłości, jeśli możesz czekać - NamespaceManager jako samodzielny pakiet opisany w następujący problem. The opcje, które będzie wspierać są również wymienione w numerze.

  • Uzyskaj - ograniczone do istniejącego czeku i przywróć metadane
  • GetRuntimeInformation (Pobiera wszystkie liczby i ostatni stan, Przybliżona liczba, dokładna w ciągu 10s)
  • GetQueueNames, GetTopicNames (Nazwy encji list)
  • Utwórz encję
  • Usuń obiekt
  • Aktualizacja (potrzebujesz szczegółowych informacji o tym, jakie metadane aktualizować, można zrobić podczas wdrażania)
  • FindOrCreate (Upsert - kolejka nie istnieje, twórz ją)
  • UpdateOrCreate (Upsert)

Jeśli chcesz łatwości NamespaceManager, a następnie warto śledzić ten problem.