Azure Blob Storage や Azure Resource Manager などの複数の Azure サービスからのイベントに、ほぼリアルタイムで反応する必要があるアプリケーションを開発しています。
アプリケーションは以下の要件を満たす必要があります:
手動の介入なしに、大量のイベントを処理すること。
イベントの種類やリソースパターンに基づいて、アプリケーションに関連する特定のイベントのみを受信すること。
処理アプリケーションが一時的に利用不能な場合でも、イベントを逃さないようにすること。
インフラストラクチャを管理せずにイベントを処理するために、Azure Functions を使用すること。
イベントのルーティングと処理に必要なカスタムコードの量を最小限に抑えること。
ソリューションを開発する必要があります。
解決策: 各 Azure サービスに対して Azure Event Grid システムトピックを構成します。関連するイベントのみを受信するために、**高度なフィルター(Advanced Filters)を使用してイベントサブスクリプションを作成します。イベントを処理するために、Event Grid トリガーを使用する Azure Functions を使用します。失敗を処理し、確実な配信を保証するために、イベントサブスクリプションでデッドレター(Dead-lettering)**を有効にします。
この解決策は目標を満たしていますか?
正解:A
この解決策は、提示されたすべての要件を Azure のベストプラクティスに従って完璧に満たしています。
1. なぜこの構成が最適なのか
システムトピック: 前の問題でも解説した通り、Azure サービス(Blob Storage 等)の標準イベントを受け取るための最適な手段であり、カスタムコードが不要です。
高度なフィルター: 「特定のイベントのみを受信」という要件を、コードを書くことなく設定(宣言的ロジック)だけで実現できます。
Event Grid トリガー + Azure Functions: サーバーレスで動作し、インフラ管理が不要です。
デッドレター: 「一時的にアプリが利用不能でもイベントを逃さない」という要件に対し、配信不能なイベントを Blob Storage に保存することで対応しています。

コメント