事例研究7 - Proseware, Inc.
背景
あなたはProseware社の開発者です。Proseware社の内部サービス、外部サービス、およびアプリケーションに一連のガバナンスポリシーを適用するアプリケーションを開発しています。このアプリケーションは、共通機能のための共有ライブラリも提供します。
要件
ポリシーサービス
「ポリシー サービス」という名前のステートフルな ASP.NET Core 2.1 Web アプリケーションを開発し、Azure App Service Web アプリにデプロイします。このアプリケーションは、Azure Event Grid からのイベントに反応し、それらのイベントに基づいてポリシー アクションを実行します。
アプリケーションは、すべての Application Insights テレメトリに Event Grid イベント ID フィールドを含める必要があります。
ポリシーサービスは、実行するポリシーアクションの数に応じて自動的にスケーリングするために、Application Insightsを使用する必要があります。
ポリシー
ログポリシー
すべての Azure App Service Web アプリは、ログを Azure Blob ストレージに書き込む必要があります。すべてのログ ファイルは、logdrop という名前のコンテナーに保存する必要があります。ログは、コンテナー内に 15 日間保持する必要があります。
認証イベント
認証イベントは、ユーザーのサインインとサインアウトを監視するために使用されます。すべての認証イベントは、ポリシーサービスによって処理される必要があります。サインアウトは、できるだけ迅速に処理されなければなりません。
ポリシーライブラリ
PolicyLib という名前の共有ライブラリがあり、このライブラリにはすべての ASP.NET Core Web サービスおよびアプリケーションに共通する機能が含まれています。PolicyLib ライブラリは次の要件を満たす必要があります。
* Application Insightsのテレメトリから、ユーザー以外の操作を除外します。
* Webサービスが自身をスケーリングできるようにするメソッドを提供する
* スケーリング操作がアプリケーションの使用を妨げないようにする
他の
異常検知サービス
ログ情報を分析して異常を検出する異常検知サービスがあります。これはAzure Machine Learningモデルとして実装されており、Webサービスとしてデプロイされています。
異常が検出された場合、HTTP Webhookを使用して管理者にメールを送信するAzure Functionが呼び出されます。
健康状態のモニタリング
すべてのWebアプリケーションとサービスは、/healthサービスエンドポイントでヘルスモニタリング機能を備えています。
保険金損失
ポリシーサービスをデプロイする際、デプロイ中に適用処理中だったポリシーは適用されない場合があります。
パフォーマンスの問題
負荷が高い場合、異常検知サービスは処理速度が低下し、接続を拒否します。
通知遅延
ユーザーからは、異常検知メールが異常検知から数分後に届くことがあるとの報告がある。
アプリファイルの関連部分を以下に示します。行番号は参考のために記載されており、各行番号には、該当するファイルを示す2文字の接頭辞が付いています。


アプリファイルの関連部分を以下に示します。行番号は参考のために記載されており、各行番号には、該当するファイルを示す2文字の接頭辞が付いています。

注:この問題は、同じシナリオを提示する一連の問題の一部です。このシリーズの各問題には、提示された目標を満たす可能性のある独自の解答が含まれています。問題セットによっては、複数の正解がある場合もあれば、正解がない場合もあります。
このセクションの質問に回答すると、後から戻って回答することはできません。そのため、これらの質問は復習画面には表示されません。
認証イベントがポリシーに従ってトリガーされ、処理されることを確認する必要があります。
解決策:サインアウト イベントに件名プレフィックスが付いていることを確認してください。subjectBeginsWith フィルターを使用する Azure Event Grid サブスクリプションを作成します。
その解決策は目標を達成しているか?