次の方法で共有


アプリケーション グループを使用してクライアント アプリケーションのリソースを管理する

Azure Event Hubs を使用すると、アプリケーション グループを使用して Event Hubs に接続するクライアント アプリケーションのイベント ストリーミング ワークロードを管理することができます。 詳細については、「アプリケーション グループを使用したリソース管理」を参照してください。

この記事では、次のタスクを実行する方法について説明します。

  • アプリケーション グループを作成します。
  • アプリケーション グループを有効または無効にする
  • しきい値の制限を定義し、アプリケーション グループに調整ポリシーを適用する
  • 診断ログを使用して調整を検証する

注意

アプリケーション グループは、Premium レベルと Dedicated レベルでのみ使用できます。

アプリケーション グループを作成する

このセクションでは、Azure portal、CLI、PowerShell、Azure Resource Manager (ARM) テンプレートを使用してアプリケーション グループを作成する方法について説明します。

次の手順に従って、Azure portal を使用してアプリケーション グループを作成できます。

  1. Event Hubs 名前空間に移動します。

  2. 左側のメニューの [設定][アプリケーション グループ] を選択します。

  3. [アプリケーション グループ] ページで、コマンド バーにある [+ アプリケーション グループ] を選択します。

    Azure portal の [アプリケーション グループ] ページのスクリーンショット。

  4. [アプリケーション グループの追加] ページで、以下の操作を行います。

    1. アプリケーション グループの [名前] を指定します。

    2. [有効] が選択されていることを確認します。 最初にアプリケーション グループを無効状態にするには、[有効] オプションをオフにします。 このフラグは、アプリケーション グループのクライアントが Event Hubs にアクセスできるかどうかを決定します。

    3. [セキュリティ コンテキストの種類] で、[名前空間の共有アクセス ポリシー][イベント ハブの共有アクセス ポリシー]、または [Microsoft Entra アプリケーション] を選択します。アプリケーション グループでは、名前空間またはエンティティ (イベント ハブ) レベルでの SAS キーの選択がサポートされます。 アプリケーション グループを作成するときは、クライアント アプリケーションで使用される共有アクセス署名 (SAS) または Microsoft Entra アプリケーション ID のいずれかに関連付ける必要があります。

    4. [名前空間の共有アクセス ポリシー] を選択した場合:

      1. [SAS key name] (SAS キー名) には、このアプリケーション グループのセキュリティ コンテキストとして使用できる SAS ポリシーを選択します。 [SAS ポリシーの追加] を選択して、新しいポリシーを追加し、アプリケーション グループに関連付けることができます。

        [名前空間の共有アクセス ポリシー] オプションが選択されている [アプリケーション グループの追加] ページのスクリーンショット。

    5. [Event Hubs の共有アクセス ポリシー] を選択した場合:

      1. [SAS キー名] には、Event Hubs の [共有アクセス ポリシー] ページから SAS ポリシー名をコピーし、テキスト ボックスに貼り付けます

        [Event Hubs の共有アクセス ポリシー] オプションが選択されている [アプリケーション グループの追加] ページのスクリーンショット。

    6. Microsoft Entra アプリケーションを選択した場合:

      1. Microsoft Entra Application (クライアント) ID には、Microsoft Entra アプリケーションまたはクライアント ID を指定します。

      Microsoft Entra オプションが指定されている [アプリケーション グループの追加] ページのスクリーンショット。

サポートされているセキュリティ コンテキストの種類

自動生成された [Client group ID] (クライアント グループ ID) (アプリケーション グループに関連付けられている一意の ID) を確認します。 アプリケーション ガバナンスのスコープ (名前空間またはエンティティ レベル) は、使用される Microsoft Entra アプリケーション ID のアクセス レベルによって異なります。 次の表は、さまざまなセキュリティ コンテキストの種類に対して自動生成されたクライアント グループ ID を示しています。

セキュリティ コンテキストの種類 自動生成されたクライアント グループ ID
名前空間の共有アクセス キー NamespaceSASKeyName=<NamespaceLevelKeyName>
Microsoft Entra アプリケーション AADAppID=<AppID>
Event Hubs の共有アクセス キー EntitySASKeyName=<EntityLevelKeyName>

Note

名前空間の共有アクセス キーを使用して作成されたすべての既存のアプリケーション グループは、SASKeyName 以降のクライアント グループ ID で引き続き動作します。 ただし、上記のように、すべての新しいアプリケーション グループに、更新されたクライアント グループ ID が設定されます。

  1. ポリシーを追加するには、次の手順に従います。

    1. ポリシーの [名前] を入力します。

    2. [種類] には、[調整ポリシー] を選択します。

    3. [メトリック ID] には、次のいずれかのオプションを選択します: [受信メッセージ][送信メッセージ][着信バイト数][発信バイト数]。 次の例では、[受信メッセージ] が選択されています。

    4. [レート制限のしきい値] には、しきい値を入力します。 次の例では、受信メッセージ数のしきい値として 10000 が指定されています。

      受信メッセージのポリシーが指定されている [アプリケーション グループの追加] ページのスクリーンショット。

      別のポリシーが追加されたページのスクリーンショットを次に示します。

      2 つのポリシーが指定されている [アプリケーション グループの追加] ページのスクリーンショット。

  2. 次に、[アプリケーション グループの追加] ページで、[追加] を選択します。

  3. アプリケーション グループの一覧にアプリケーション グループが表示されていることを確認します。

    作成したアプリケーション グループが表示されている [アプリケーション グループ] ページのスクリーンショット。

    一覧内のアプリケーション グループの横にあるごみ箱アイコン ボタンを選択すると、一覧からアプリケーション グループを削除できます。

アプリケーション グループを有効または無効にする

クライアント アプリケーションが Event Hubs 名前空間にアクセスできないようにするには、それらのアプリケーションを含むアプリケーション グループを無効にします。 アプリケーション グループを無効にすると、クライアント アプリケーションはデータを発行または使用できなくなります。 そのアプリケーション グループのクライアント アプリケーションから確立されているすべての接続が終了します。

このセクションでは、Azure portal、PowerShell、CLI、ARM テンプレートを使用してアプリケーション グループを有効または無効にする方法について説明します。

  1. [Event Hubs 名前空間] ページで、左側のメニューの [アプリケーション グループ] を選択します。

  2. 有効または無効にするアプリケーション グループを選択します。

    アプリケーション グループが選択されている [アプリケーション グループ] ページを示すスクリーンショット。

  3. [Edit application group] (アプリケーション グループの編集) ページで、[有効] の横にあるチェックボックスをオフにしてアプリケーション グループを無効にしてから、ページの下部にある [更新] を選択します。 同様に、チェックボックスをオンにしてアプリケーション グループを有効にします。

    [有効] オプションが選択解除されている [Edit application group] (アプリケーション グループの編集) ページを示すスクリーンショット。

調整ポリシーを適用する

アプリケーション グループまたは既存のアプリケーション グループを作成するときに、0 個以上のポリシーを追加できます。 たとえば、IncomingMessagesIncomingBytes、または OutgoingBytes に関連する調整ポリシーを contosoAppGroup に追加できます。 これらのポリシーは、SAS ポリシー contososaspolicy を使用するクライアント アプリケーションのイベント ストリーミング ワークロードに適用されます。

アプリケーション グループの作成時にポリシーを追加する方法については、「アプリケーション グループを作成する」セクションを参照してください。

アプリケーション グループの作成後にポリシーを追加することもできます。

  1. [Event Hubs 名前空間] ページで、左側のメニューの [アプリケーション グループ] を選択します。

  2. ポリシーを追加、更新、または削除するアプリケーション グループを選択します。

    アプリケーション グループが選択されている [アプリケーション グループ] ページを示すスクリーンショット。

  3. [Edit application group] (アプリケーション グループの編集) ページで、次の手順を実行できます。

    1. 既存のポリシーの設定 (しきい値を含む) を更新する
    2. 新しいポリシーを追加する

調整ポリシーのしきい値を決定する

Azure Event Hubs では、アプリケーション メトリック ログ機能をサポートして、システム内の通常のスループットを監視し、それに応じてアプリケーション グループのしきい値が決定されます。 以下の手順に従って、しきい値を決定できます。

  1. アプリケーション メトリック ログを選択されたカテゴリとして Event Hubs で診断設定を有効にし、宛先として Log Analytics を選択します。

  2. 調整ポリシーを使用せずに空のアプリケーション グループを作成します。

  3. 通常のスループットで、イベント ハブにメッセージやイベントを送信し続けます。

  4. Log Analytics ワークスペースに移動し、AzureDiagnostics テーブルで適切なアクティビティ名 ((resource-governance-overview.md#throttling-policy---threshold-limits) に基づいた) のクエリを実行します。 次のサンプル クエリは、受信メッセージのしきい値を追跡するように設定されています。

    AzureDiagnostics 
        | where ActivityName_s =="IncomingMessages" 
        | where Outcome_s =="Success"      
    
  5. Log Analytics ワークスペースで [グラフ] セクションを選択し、生成された時間を Y 軸、送信されたメッセージの数を X 軸とするグラフをプロットします。

    Azure portal の [Azure Monitor ログ] ページのスクリーンショット。

    この例では、通常のスループットでメッセージが 550 件を超えることはないということがわかります (予想される現在のスループット)。 この観察は、実際のしきい値を定義する際に役立ちます。

  6. しきい値を決定したら、アプリケーション グループ内に新しい調整ポリシーを追加します。

イベントを発行または使用する

アプリケーション グループに調整ポリシーを正常に追加したら、contosoAppGroup アプリケーション グループの一部であるクライアント アプリケーションを使用してイベントを発行または使用することで、調整動作をテストできます。 テストするには、AMQP クライアントまたは Kafka クライアント アプリケーションと、アプリケーション グループの作成に使用されたものと同じ SAS ポリシー名または Microsoft Entra アプリケーション ID を使用できます。

Note

クライアント アプリケーションが調整されると、データの公開または使用が遅くなるはずです。

アプリケーション グループを使用して調整を検証する

調整ポリシーのしきい値制限の決定と同様に、アプリケーション メトリック ログを使用して調整を検証し、詳細を見つけることができます。

次のクエリ例を使用して、特定の時間枠内のすべての調整された要求を確認できます。 調整が予想される操作に一致するように ActivityName を更新する必要があります。


  AzureDiagnostics 
  |  where Category =="ApplicationMetricsLogs"
  | where ActivityName_s =="IncomingMessages" 
  | where Outcome_s =="Throttled"  
	

プロトコル レベルの制限のため、調整された要求ログは、イベント ハブ内のコンシューマー操作 (OutgoingMessages または OutgoingBytes) に対して生成されません。 要求がコンシューマー側でスロットルされているときは、エグレス スループットの低下が観察されます。

次の手順