事例研究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文字の接頭辞が付いています。

ドラッグアンドドロップ問題
ログポリシーを実装する必要があります。
Azure Event Grid サブスクリプションを完了するにはどうすればよいでしょうか? 回答するには、適切な JSON セグメントを正しい場所にドラッグしてください。各 JSON セグメントは、1 回、複数回、またはまったく使用しない場合があります。コンテンツを表示するには、ペイン間の分割バーをドラッグするか、スクロールする必要がある場合があります。
注:正解ごとに1ポイントが加算されます。

正解:

Explanation:
Box 1:WebHook
Scenario: If an anomaly is detected, an Azure Function that emails administrators is called by using an HTTP WebHook.
endpointType: The type of endpoint for the subscription (webhook/HTTP, Event Hub, or queue).
Box 2: SubjectBeginsWith
Box 3: Microsoft.Storage.BlobCreated
Scenario: Log Policy
All Azure App Service Web Apps must write logs to Azure Blob storage. All log files should be saved to a container named logdrop. Logs must remain in the container for 15 days.
Example subscription schema
{
"properties": {
"destination": {
"endpointType": "webhook",
"properties": {
"endpointUrl":
"https://example.azurewebsites.net/api/HttpTriggerCSharp1?code=VXbGWce53l48Mt8wuotr0GP myJ/nDT4hgdFj9DpBiRt38qqnnm5OFg==" }
},
"filter": {
"includedEventTypes": [ "Microsoft.Storage.BlobCreated", "Microsoft.Storage.BlobDeleted" ],
"subjectBeginsWith": "blobServices/default/containers/mycontainer/log",
"subjectEndsWith": ".jpg",
"isSubjectCaseSensitive ": "true"
}
}
}
References:
https://docs.microsoft.com/en-us/azure/event-grid/subscription-creation-schema