/ / Vytvoriť tému ServiceBus, ak ešte neexistuje - c #, azureservicebus

Vytvorte tému ServiceBus, ak ešte neexistuje - c #, azureservicebus

Spoločnosť Microsoft aktualizovala svoju knižnicu klientov .NET ServiceBus a ich dokumentácia je v súčasnosti rozdelená medzi staré WindowsAzure.ServiceBus a nové Microsoft.Azure.ServiceBus Balík. Páči sa mi nový balíček, pretože je oveľa čistejší a má menej závislostí. V starom balíku sme mali metódy, ako sú nasledujúce:

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

Dokumentácia pre vytvorenie témy programovo stále používa starý balík s kódom ako je uvedené vyššie. NamespaceManager trieda nie je k dispozícii v novom balíku, tak ako môžem dosiahnuť ekvivalent tohto?

odpovede:

3 pre odpoveď č. 1

Na Github Repo azúrovo-service-bus-dotNET, vysvetľujú, ako spravovať entity služby Bus:

  • Môžem s touto knižnicou spravovať subjekty služby Bus Bus?:

    Štandardný spôsob riadenia zdrojov Azure je pomocou Azure Resource Manager, Ak chcete použiť funkčnosť, ktorá predtým existovala v klientskej knižnici .NET Framework Service Bus, budete musieť použiť Microsoft.Azure.Management.ServiceBus knižnicu. Umožní to použitie prípadov, ktoré dynamicky vytvárajú / čítajú / aktualizujú / odstraňujú zdroje.

Ukážka použitia tejto knižnice obsahuje:

musíte tieto balíky nainštalovať:

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

Zaujímavá časť pre vás, ak chcete vytvoriť tému. Všimnite si, že nie je potrebné skontrolovať, či daná téma existuje. Azure resource manager iba aktualizuje zdroj, ak už existuje.

// 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 pre odpoveď č. 2

Existuje aj budúca možnosť, ak môžete počkať - NamespaceManager ako samostatný balík popísaný v nasledujúce vydanie, možnosti, ktoré bude podporovať sú uvedené aj v probléme.

  • Získať - obmedzenie na kontrolu existuje a vrátenie metadát
  • GetRuntimeInformation (získa všetky počty a posledný stav, približný počet, presný do 10 sekúnd)
  • GetQueueNames, GetTopicNames (Zoznam názvov entít)
  • Vytvoriť entitu
  • Odstrániť entitu
  • Aktualizácia (potrebujete podrobnosti o tom, aké metadáta sa majú aktualizovať, je možné vykonať počas implementácie)
  • FindOrCreate (Upsert - front nie je "vytvoriť")
  • UpdateOrCreate (Upsert)

Ak sa vám bude páčiť ľahkosť NamespaceManager, potom stojí za to sledovať problém.