无服务器处理在Web应用开发中的应用
1. 处理流程概述
在Web应用开发中,对于演示文稿的处理采用了分阶段的方式。演示文稿会被分成两部分,当用户查看幻灯片的初始部分时,第二部分(包括演示文稿的其余部分)稍后会交付给客户端。
对于每一部分,会同时执行三个AWS Lambda实例,它们分别负责以下任务:
- 处理LaTeX文件并将幻灯片提取为SVG文件,然后上传到Amazon S3。
- 使用Amazon Polly生成语音评论,并存储在Amazon S3中。
- 提取生成的幻灯片的一些元数据。
当这三个任务完成后,函数输出会被格式化,然后调用另一个无服务器函数,通过WebSocket API将处理结果推送给客户端。
2. 向客户端推送更新
AWS Step Function异步协调处理过程,因此在处理完成时需要通知客户端。具体步骤如下:
1. 客户端应用程序调用AWS Step Function并获取其执行ID。
2. 客户端连接到WebSocket API,并发送包含接收到的ID的消息,调用AWS Lambda。
3. AWS Lambda将执行ID和关联的连接ID存储在DynamoDB中。
4. 当生成演示文稿片段时,无服务器函数根据执行ID检索数据,并将包含处理结果的消息发送给关联的客户端应用程序。
5. 最后,客户端下载存储在Amazon S3中预定义路径下的幻灯片和音频文件。
3. 方案讨论
该解决方案基于处理编排,涉及在不同处理阶段执行不同任务的无服务器函数调用。AWS Step Function使处理