説明/参照:
テストレット1
バックグラウンド
あなたはAzureベースのウェブサイトと小売店舗を通じてコーヒーやコーヒーアクセサリーを販売するFourth Coffee社の開発者です。ウェブサイトの特長には、製品のレビューを書いたり、レビューにコメントしたり、特定の製品が特定の小売店で利用可能かどうかを調べる機能などがあります。
Fourth CoffeeはContoso、Ltdの製品をライセンスしており、AzureベースのWebサイトを日本のユーザーに提供しています。ウェブサイトにはレビューとコメントが含まれています。すべてのコメントと製品レビューはFourth Coffeeのウェブサイトと日本のウェブサイトで共有されています。
ビジネス要件
商品レビュー
ユーザーが提出した製品レビューは、Contosoによって提供され、HTMLファイル形式で日本語に格納されます。レビューが提出されると、Fourth Coffeeのウェブサイトにレビューを読み込む前に、レビューから特定のキーワードを削除し、レビューを英語に翻訳する必要があります。
翻訳の処理と移行は最小の遅延で行わなければなりません。
製品のレビューは、Fourth Coffeeの従業員が処理してレビューした後にのみ、第三者のWebサイトからロードすることができます。レビューはFourth Coffeeのウェブサイトで公開されてから1年以内に読み込むことができます。
コメント
ユーザーは製品のレビューに関するコメントを投稿できます。コメントが投稿されると、その製品にコメントする他のすべてのユーザーは、AndroidまたはWindows Phoneデバイスで通知を受け取ります。
技術要件
商品レビュー
Contosoの製品レビューは、BLOBストレージにHTMLファイルとして "/ reviews /
<guid> html "
Fourth CoffeeはBLOBストレージ内のレビューを "/users/reviews/<guid>.md"の形式で保存します。<guid>はレビューのファイル名と一致します。 Fourth Coffeeの従業員がレビューを承認した後、レビューの名前付きのメタデータ・プロパティーがBLOBに設定されます。
一部の製品レビューには、追加の処理が必要な言語固有の用語が含まれています。追加の処理は、cleanup.pyという名前のpythonスクリプトによって実行されます。このスクリプトは、用語とその置換値を含むterm.dataという名前のデータファイルに依存しています。実行中のスクリプトのすべてのインスタンスは、データファイルの同じインスタンスを使用する必要があります。
セキュリティ
セキュリティ設定を簡素化するために、ContosoとFourth Coffeeは、パブリックインターネット上でトラフィックを表示することなく、サービス間の通信を可能にするようにWebサイトとサービスを構成することに同意します。
第三者がレビューデータを収集するのを防ぐため、システムがパブリックレビューを返すたびに、リクエストのIPアドレスを記録し、特定のIPアドレスからデータを取得する回数を増やします。 IPアドレスが10分を超えるリクエストを1分以上行う場合、クライアントはratelimit.htmlという名前の静的ページにリダイレクトする必要があります。
アズール
Azureで動作するFourth CoffeeのWebサイトおよび関連サービスは、米国西部地域にあり、アドレス10.1.0.0/16のMainという単一の仮想ネットワーク上にあります。
Azureで実行されるContosoのWebサイトおよび関連サービスは、Japan West地域にあり、アドレス10.2.0.0/24のCTという単一の仮想ネットワーク上にあります。
コメント
製品審査のコメントは、最大で1回処理する必要があります。コメントが投稿されると、コメントを投稿したユーザーのIDに関連付けられている必要があります。製品のレビューコメントは、HTTP POSTでコメントの本文を受け入れるWebサービスによって索引付けされます。コメントが移植されると、15分以内に検索のために索引付けされなければなりません。各コメントは正確に1回のみ索引付けする必要があります。すべてのモバイルデバイスの通知は、Azure Notification Hubサービスを使用して送信されます。
アプリケーション構造
CommentIndexer.cs
CommentIndexer.csファイルの関連部分を以下に示します。行番号は参照用にのみ含まれており、コードが属する特定のファイルを示す2文字の接頭辞が含まれています。

ReviewController.cs
ReviewController.csファイルの関連する部分を以下に示します。行番号は参照用にのみ含まれており、コードが属する特定のファイルを示す2文字の接頭辞が含まれています。

TranslateJob.cs
TranslateJob.csファイルの関連する部分を以下に示します。行番号は参照用にのみ含まれており、コードが属する特定のファイルを示す2文字の接頭辞が含まれています。

AccessRateFilter.cs
AccessRateFilter.csファイルの関連する部分を以下に示します。行番号は参照用にのみ含まれており、コードが属する特定のファイルを示す2文字の接頭辞が含まれています。
