2017-12-11 5 views
0

Microsoftは.NET ServiceBusクライアントライブラリを更新しました。ドキュメントは現在、古いWindowsAzure.ServiceBusパッケージと新しいMicrosoft.Azure.ServiceBusパッケージに分割されています。私はその新しいパッケージが好きです。そのパッケージはとても洗練されており、依存性はそれほどありません。古いパッケージでは、次のようなメソッドがありました。ServiceBusトピックがまだ存在しない場合に作成

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

トピックをプログラムで作成するためのドキュメントでは、上記のようなコードを使用しています。 NamespaceManagerクラスは新しいパッケージでは使用できません。どうすればこれに相当することができますか? GitHubのレポazure-service-bus-dotnet

答えて

2

、彼らは、Service Busのエンティティを管理する方法について説明します。

  • Can I manage Service Bus entities with this library?

    Azureのリソースを管理するための標準的な方法はAzure Resource Managerを使用することです。以前に.NET Framework Service Busクライアントライブラリに存在していた機能を使用するには、Microsoft.Azure.Management.ServiceBusライブラリを使用する必要があります。これにより、リソースを動的に作成/読み取り/更新/削除するユースケースが可能になります。

    は、あなたがこれらのパッケージをインストールする必要があります:

    • Microsoft.Azureこのライブラリを使用する方法のサンプルがあり

。 Management.ServiceBus

  • Microsoft.Azure.Management.ResourceManager
  • Microsoft.IdentityModel.Clients.ActiveDirectory
  • トピックを作成したい場合はあなたのための興味深い部分。トピックが存在するかどうかを確認する必要はありません。 Azureリソースマネージャは、リソースが既に存在する場合にのみ更新します。

    // 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()); 
    
    +0

    ありがとうThomas。私はreadmeを読み飛ばし、 "サービスバスエンティティの管理"は "トピックとサブスクリプションの作成/読み込み/更新"と同義であると思いませんでした。 「リソースグループ名」とは何ですか?私はこれがAzureポータルで見られるリソースグループと同じだと考えていますが、リソースがAzureでシフトされていれば、このようなコードを簡単に破ることはできません。 –

    +0

    はい、Azure上のリソースグループの名前です。私はそれが複数のリソースグループを使用しているかどうかによって異なりますと思います。たぶんあなたはそれに対処する別の質問をすることができます。 – Thomas

    1

    あなたは待つことができれば、将来のオプションもあります - NamespaceManagerをfollowing issueで説明スタンドアロンパッケージとして。 options it will supportもこの問題に記載されています。

    • 取得 - チェックして、メタデータバックに
    • GetRuntimeInformation
    • GetQueueNames、GetTopicNames(リストエンティティ名)
    • (すべてのカウントと最後の状態、おおよその数、10秒内に正確に取得)を与える存在に限ら作成エンティティ
    • 削除エンティティ
    • 更新(実装時に行うことができ、更新するために、どのようなメタデータの詳細が必要です)
    • FindOrCreate(アップサート - キューがそれを作成存在しません)
    • UpdateOrCreate(アップサート)

    あなたは問題以下の価値は、その後、NamespaceManagerのしやすさをたい場合。

    関連する問題