Anypoint Studio を使用した Azure Service Bus Connector 3.4 の設定 - Mule 4

Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。

Studio でコネクタを追加および設定する手順は、次のとおりです。

Studio で初めてコネクタを設定する場合は、​「Anypoint Studio を使用したコネクタの設定」​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​「Azure Service Bus Connector リファレンス」​を参照してください。

Mule プロジェクトを作成する

Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。

  1. Studio で、​[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

  2. Mule プロジェクトの名前を入力して、​[Finish (完了)]​ をクリックします。

コネクタを Mule プロジェクトに追加する

Azure Service Bus Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​pom.xml​ ファイルに必須の連動関係を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューで、​[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  2. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「​azure service bus​」と入力します。

  3. [Available modules (使用可能なモジュール)]​ で、​[Azure Service Bus]​ をクリックします。

  4. [Add (追加)]​ をクリックします。

  5. [Finish (完了)]​ をクリックします。

Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。

入力元を設定する

入力元は、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Azure Service Bus Connector で使用するように設定できます。

  • Message Listener
    指定されたキューまたはサブスクリプションからメッセージを受信します。

  • HTTP Listener
    設定されたホストとポートで要求を受信するたびにフローを開始する

  • Scheduler
    時間ベースの条件が満たされたときにフローを開始する

たとえば、​メッセージリスナー​を設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで、Azure Service Bus Connector を選択し、​[Message listener (メッセージリスナー)]​ を選択します。

  2. [Message listener (メッセージリスナー)]​ を Studio キャンバスにドラッグします。

  3. [Message listener (メッセージリスナー)]​ 設定画面で、必要に応じて ​[Display Name (表示名)]​ 項目の値を変更します。

  4. [Acknowledgment mode (肯定応答モード)]​ から、次のオプションを選択します。

    • Auto (自動)
      アプリケーションフローが正常に実行された場合にのみ受信したメッセージに自動的に肯定応答します。

    • 即時
      メッセージがコンシュームされた時点で、メッセージの処理が行われる前に、自動的に肯定応答します。

    • 手動
      メッセージの肯定応答の責任をアプリケーションロジックに委任します。

  5. [Destination (宛先)]​ セクションで、次の情報を入力します。

    • Destination name (宛先名)
      メッセージの受信元の宛先キューの名前。

    • Subscription name (サブスクリプション名)
      メッセージの受信元のサブスクリプションの名前。

  6. [Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべての ​Message listener​ インスタンスで使用できる​グローバル要素を設定します​。

フローにコネクタの操作を追加する

フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。

Azure Service Bus Connector の操作を追加する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで、​[Azure Service Bus]​ を選択し、目的の操作を選択します。

  2. その操作を Studio キャンバスの入力元の右にドラッグします。

コネクタのグローバル要素を設定する

コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定することをお勧めします。グローバル要素を設定するには、コネクタが対象 Azure Service Bus メッセージングシステムにアクセスするための認証ログイン情報を提供する必要があります。また、接続プロバイダーを設定する必要があります。Azure Service Bus Connector は次の 2 つの接続種別を受け入れます。

Shared Access Signature (共有アクセス署名) (SAS) 認証

Azure Service Bus Connector の Shared Access Signature (共有アクセス署名) 認証を設定するには、次の手順に従います。

  1. Studio キャンバスでコネクタの名前を選択します。

  2. 操作の設定画面で、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (+) をクリックし、グローバル要素設定項目にアクセスします。

  3. [General (一般)]​ タブで、接続ドロップダウンから ​Shared Access Signature​ を選択し、SAS 認証の次の必須項目を設定します。

    1. Azure の ​[Service namespace (サービス名前空間)]​ を入力します。
      これは、作成時に名前空間に割り当てられる一意の名前 (URL のホスト名部分) です。次に例を示します。

      https://{serviceNamespace}.servicebus.windows.net/{path}

    2. Azure の ​[Shared access key name (共有アクセスキー名)]​ を入力します。
      これは、Azure Service Bus 名前空間内で設定する SAS トークンの名前です。

    3. Azure の ​[Shared access key (共有アクセスキー)]​ を入力します。
      これは、SAS トークンの名前です。

    次のスクリーンショットは、Azure Service Bus Connector の SAS 認証を設定する例を示しています。

    [General (一般)] タブでの項目の認証設定

    ANT スタイルのプロパティプレースホルダーを含む設定ファイルを参照するか (推奨)、グローバル設定プロパティに認証ログイン情報を入力できます。プロパティプレースホルダーを使用する利点とその設定方法については、​「Anypoint Connector 設定」​を参照してください。

  4. [Advanced (詳細)]​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。

  5. [Test Connection (接続をテスト)]​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。

  6. [OK]​ をクリックします。

リソースへのアクセスが制限されていて、セキュリティポリシーの権限がリソースレベルのみである場合、コネクタ設定のグローバル要素の [​Test Connection​ (テスト接続)] ボタンを使用しても、Azure Service Bus Connector は起動時に接続テストを実行できません。これは、セキュリティポリシーの対象が、共有アクセスキーに適用されたカスタムポリシーによって禁止されている可能性がある名前空間のルートレベルになるためです。

Azure Active Directory (AAD) 認証

Azure Service Bus Connector の Azure Active Directory 認証を設定するには、次の手順に従います。

  1. Studio キャンバスでコネクタの名前を選択します。

  2. 操作の設定画面で、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (+) をクリックし、グローバル要素設定項目にアクセスします。

  3. [General (一般)]​ タブで、接続ドロップダウンから ​Active Directory Connection​ を選択し、AAD 認証の次の必須項目を設定します。

    1. Azure の ​[Service namespace (サービス名前空間)]​ を入力します。
      これは、作成時に名前空間に割り当てられる一意の名前 (URL のホスト名部分) です。次に例を示します。

      https://{serviceNamespace}.servicebus.windows.net/{path}

    2. Azure の ​[Tenant Id (テナント ID)]​ を入力します。

    3. Azure の ​[Client Id (クライアント ID)]​ を入力します。

    4. Azure の ​[Client Secret (クライアントシークレット)]​ を入力します。

    次のスクリーンショットは、Azure Service Bus Connector の AAD 認証を設定する例を示しています。

    [General (一般)] タブでの項目の認証設定

    ANT スタイルのプロパティプレースホルダーを含む設定ファイルを参照するか (推奨)、グローバル設定プロパティに認証ログイン情報を入力できます。プロパティプレースホルダーを使用する利点とその設定方法については、​「Anypoint Connector 設定」​を参照してください。

  4. [Advanced (詳細)]​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。

  5. [Test Connection (接続をテスト)]​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。

  6. [OK]​ をクリックします。

リソースへのアクセスが制限されていて、セキュリティポリシーの権限がリソースレベルのみである場合、コネクタ設定のグローバル要素の [​Test Connection​ (テスト接続)] ボタンを使用しても、Azure Service Bus Connector は起動時に接続テストを実行できません。これは、セキュリティポリシーの対象が、アプリケーション登録に適用されたカスタムポリシーによって禁止されている可能性がある名前空間のルートレベルになるためです。

アプリケーションログの表示

アプリケーションログは次の方法で表示できます。

  • アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。

  • コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​log4j2.xml​) でログファイルパスがカスタマイズされていない場合、次のデフォルトの場所でアプリケーションログを表示することもできます。 ​MULE_HOME/logs/<app-name>.log​ アプリケーションログについての詳細は、​「ログの設定」​を参照してください。

過剰なロギングの削減

メッセージリスナー​ソースを使用すると、Azure Service Bus ライブラリは、新しいメッセージの受信がなかったことを示す INFO レベルのログメッセージを約 30 秒ごとに生成します。この過剰なロギングを回避するには、次の AsyncLogger 要素を ​log4j.xml​ ファイルに追加します。

<AsyncLogger name="com.microsoft.azure.servicebus.primitives.CoreMessageReceiver" level="WARN"/>

次のステップ

グローバル要素と接続情報を設定したら、コネクタの他の項目を設定します。