アプリケーション グループを使用したリソース ガバナンス

Azure Event Hubs を使用すると、Event Hubs に接続するクライアント アプリケーションのイベント ストリーミング ワークロードのガバナンスを行うことができます。 各グループがクライアント アプリケーションのコレクションである "アプリケーション グループ" と呼ばれる論理グループを作成し、クォータとアクセス管理ポリシーをアプリケーション グループ (クライアント アプリケーションのグループ) に適用できます。

注意

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

アプリケーション グループ

アプリケーション グループは、Event Hubs のデータ プレーンと対話する 1 つ以上のクライアント アプリケーションのコレクションです。 各アプリケーション グループのスコープは、1 つの名前空間内の単一の Event Hubs 名前空間またはイベント ハブ (エンティティ) に設定でき、クライアント アプリケーションのセキュリティ コンテキスト (Shared Access Signature (SAS) や Microsoft Entra アプリケーション ID) などの一意に識別される条件を使用する必要があります。

現在、Event Hubs では、アプリケーション グループの作成にセキュリティ コンテキストの使用がサポートされています。 したがって、各アプリケーション グループには、一意の SAS ポリシーまたは Microsoft Entra アプリケーション ID が関連付けられている必要があります。 必要に応じて、イベント ハブ レベルでセキュリティ コンテキストを使用して、名前空間内の特定のイベント ハブを持つアプリケーション グループを使用できます。

アプリケーション グループは、名前空間レベルで作成される論理エンティティです。 そのため、Event Hubs と対話するクライアント アプリケーションは、アプリケーション グループの存在を認識する必要はありません。 Event Hubs で、識別条件を使用して、任意のクライアント アプリケーションをアプリケーション グループに関連付けることができます。

次に示すように、各クライアント アプリケーションが使用するセキュリティ コンテキストに基づいてアプリケーション グループを作成できます。 したがって、アプリケーション グループは、同じセキュリティ コンテキストを使用して、複数のクライアント アプリケーションにまたがることができます。

Image showing capturing of Event Hubs data into Azure Storage or Azure Data Lake Storage.

アプリケーション グループとコンシューマー グループの間に直接的な関連付けはありません。 セキュリティ コンテキストなどのアプリケーション グループの識別子に応じて、1 つのコンシューマー グループに 1 つ以上のアプリケーション グループを関連付けたり、1 つのアプリケーション グループが複数のコンシューマー グループにまたがったりすることができます。

アプリケーション グループの主な属性は次のとおりです。

パラメーター 説明
name アプリケーション グループの一意の名前。
clientAppGroupIdentifier アプリケーション グループを一意の識別条件 (SAS ポリシーや Microsoft Entra アプリケーション ID などのセキュリティ コンテキスト) に関連付けます。
policies クライアント アプリケーションと Event Hubs 名前空間の間のイベント ストリーミングを制御する調整ポリシーなどの、ポリシーのリスト
isEnabled アプリケーション グループのクライアント アプリケーションが Event Hubs 名前空間にアクセスできるかどうかを決定します。

アプリケーション グループのポリシー

各アプリケーション グループは、アプリケーション グループの一部であるクライアント アプリケーションのデータ プレーン アクセスを制御する 0 個以上のポリシーを含むことができます。 現在、アプリケーション グループでは調整ポリシーがサポートされています。

調整ポリシー

さまざまなイングレスとエグレスのメトリックを使用して、調整ポリシーを指定できます。 アプリケーション グループでは、次のメトリックを使用して、クライアント アプリケーションのイングレスまたはエグレスのワークロードを調整できます。

パラメーター 説明
IncomingBytes 1 秒あたりのパブリッシャー スループット (バイト単位)
OutgoingBytes 1 秒あたりのコンシューマー スループット (バイト単位)
IncomingMessages 1 秒間に発行されるイベントの数。
OutgoingMessages 1 秒間に消費されるイベントの数。

アプリケーション グループのポリシーが適用されると、クライアント アプリケーションのワークロードが遅くなったり、サーバー ビジー例外が発生したりする可能性があります。

調整ポリシー - しきい値の制限

次の表に、調整ポリシーで異なるメトリック ID に設定できる最小しきい値制限を示します。

メトリック ID **上限**
IncomingByte 1 KB
OutgoingByte 1 KB
IncomingMessage 1
Outgoing message 1

Note

調整ポリシーのしきい値に設定された制限は、Kafka トピックのプロパティに設定された値よりも優先されます。 たとえば、IncomingBytesmessage.max.bytes より優先されます。
アプリケーション グループの調整では、許容されるトラフィック シナリオより (数分間にわたり) 一貫して高い場合に調整されることが想定されます。トラフィックが数秒間だけ急に増加した場合は、アプリケーション グループによる調整が行われない可能性があります。 調整を検証するには、数分にわたって許容されるスループットを調べることをお勧めします。

プロトコルのサポートとエラー コード

アプリケーション グループでは、AMQP、Kafka、HTTP の各プロトコルを介して行われる調整操作がサポートされます。 次の表に、アプリケーション グループから返される可能性のあるエラー コードを示します。

Protocol 操作 エラー コード エラー メッセージ
AMQP Send 50004 サブコード: 50013。アプリケーション グループがアプリケーション グループ ID とポリシー名で調整されています
HTTP Send 503 サブコード: 50013。 アプリケーション グループがアプリケーション グループ ID とポリシー名で調整されています
Kafka Send PolicyViolation ブローカー: ポリシー違反

プロトコル レベルでの制限により、受信操作中にエラー メッセージはサポートされません。 アプリケーション グループが受信操作で調整されている場合、コンシューマー側でメッセージの消費が遅れる可能性があります。

アプリケーション グループの無効化

アプリケーション グループは既定で有効になっています。つまり、すべてのクライアント アプリケーションは、アプリケーション グループ ポリシーに従って、イベントを発行および消費するために Event Hubs 名前空間にアクセスできます。

アプリケーション グループを無効にしても、クライアントはイベント ハブに接続できますが、認可は失敗し、クライアント接続は閉じられます。 そのため、正常なオープン接続とクローズ接続が多数表示され、診断ログには同じ数の認可エラーが記録されます。

次の手順

アプリケーション グループを作成および管理する方法については、Azure portal を使用したクライアント アプリケーションのリソース ガバナンスに関するページを参照してください