データのセッションを記録するモバイル アプリケーションの構築を検討しています。データをクレンジングしてから、受信 S3 バケットにアップロードする必要があります。このバケットにイベントがあり、Lambda 関数をトリガーしてデータを処理し、送信 S3 バケットに配置します。これは、ファイルの内容が処理の結果に関する単語であるファイルの形式です。次に、この結果をデバイスに返す必要があります。できるだけ多くの AWS サービスを使用してこれを設計しようとしています。また、以前の結果を確認するために、ユーザー (デバイス) が利用できる履歴データも必要です。現時点では、次のアイデアがあります。
- デバイスを認証する AWS Cognito
- モバイル デバイスはデータを処理およびクレンジングし、Cognito 認証を使用してペイロード パケットを S3 受信バケットに配置し、ファイル名の一部を構成する DeviceID を使用します。
- 処理はLamdba関数のまま、出力はテキストファイル、再びDeviceID命名規則を使用
- 結果を DynamoDB に保存する別の Lambda 関数を使用した、送信 S3 バケットでのイベント トリガー。保存したら、最新の結果 (ステータス) をデバイスにプッシュ通知します。
- DynamoDB を検索してすべての結果を表示し、ユーザーに送信する前に結果 (ワークフローなど) をインターセプトする可能性があるカスタム Node.js 管理アプリを備えた小さな EC2 インスタンス。管理コンソールからユーザーへの最終通知をトリガーすることも可能
- デバイス アプリケーションは AWS SDK を使用して、DynamoDB の結果を履歴的に読み取ります
- 将来は Elastic MapReduce を組み込んで、結果に対して複雑なクエリを実行する可能性があります
ソリューションはかなり健全なようです。私はまだ利用可能なすべての AWS サービスの速度を上げているので、明らかな何かが欠けているかどうかはわかりません.