希望构建一个记录数据会话的移动应用程序。需要对数据进行清理,然后将其上传到传入的 S3 存储桶中。此存储桶上有一个事件,然后触发 Lambda 函数来处理数据,然后将其放入传出 S3 存储桶中。这是文件的形式,文件内容是处理结果的单词。然后需要将该结果返回给设备。我希望使用尽可能多的 AWS 服务来构建它。用户(设备)还需要有可用的历史数据,才能查看他们以前的结果。目前,我有以下想法:
- AWS Cognito 对设备进行身份验证
- 移动设备将处理和清理数据,并再次使用 Cognito 身份验证,将有效负载数据包放入 S3 传入存储桶,DeviceID 构成文件名的一部分
- 进程保持不变,使用 Lamdba 函数,输出为文本文件,再次使用 DeviceID 命名约定
- 传出 S3 存储桶上的事件触发器,使用另一个 Lambda 函数将结果存储到 DynamoDB。存储后,向设备发送带有最新结果(状态)的推送通知
- 一个带有自定义 Node.js 管理应用程序的小型 EC2 实例,用于搜索 DynamoDB 并查看所有结果,并可能在发送给用户之前拦截结果(如工作流)。甚至可以从管理控制台向用户触发最终通知
- 设备应用程序将使用 AWS SDK 读取 DynamoDB 历史结果
- 未来可能会结合 Elastic MapReduce 对结果执行复杂查询
解决方案似乎相当合理,我仍在了解所有可用的 AWS 服务,所以不确定我是否遗漏了任何明显的东西。