/ / Create ServiceBus topic if it already already already - c #, azureservicebus

Criar tópico ServiceBus, se ele ainda não existir - c #, azureservicebus

A Microsoft atualizou sua biblioteca cliente .NET ServiceBus, e sua documentação está atualmente dividida entre as antigas WindowsAzure.ServiceBus pacote e o novo Microsoft.Azure.ServiceBus pacote. Eu gosto do novo pacote, pois é muito mais limpo e tem menos dependências. No pacote antigo, tínhamos métodos como o seguinte:

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

A documentação para criar um tópico programaticamente ainda usa o pacote antigo, com código como o acima. o NamespaceManager A classe não está disponível no novo pacote, então como posso alcançar o equivalente a isso?

Respostas:

3 para resposta № 1

No Github Repo azure-service-bus-dotnet, eles explicam como gerenciar entidades do Barramento de Serviço:

Há um exemplo de como usar esta biblioteca:

você precisa instalar estes pacotes:

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

A parte interessante para você se você quiser criar um tópico. Observe que você não precisa verificar se o tópico existe. O gerenciador de recursos do Azure somente atualizará o recurso se ele já existir.

// 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 para resposta № 2

Há também uma opção futura se você puder esperar - NamespaceManager como um pacote independente descrito no seguinte problema. o opções que suportará estão listados na edição também.

  • Obter - limitado a verificar e devolver os metadados
  • GetRuntimeInformation (obtém todas as contagens e o último estado, contagem aproximada, com precisão de 10 segundos)
  • GetQueueNames, GetTopicNames (nomes de entidades de lista)
  • Criar entidade
  • Excluir entidade
  • Atualizar (Precisa de detalhes sobre quais metadados atualizar, pode ser feito durante a implementação)
  • FindOrCreate (Upsert - queue não existe para criá-lo)
  • UpdateOrCreate (Upsert)

Se você "quiser a facilidade de NamespaceManager, então vale a pena seguir a questão.