File upload 使用Lambda函数支持的API网关,该函数使用SNS在微服务之间进行通信
简言之,我感兴趣的是构建通过SNS连接的松散耦合的微服务(大多数情况下),以便实时处理API请求 前提File upload 使用Lambda函数支持的API网关,该函数使用SNS在微服务之间进行通信,file-upload,aws-lambda,aws-api-gateway,amazon-sns,File Upload,Aws Lambda,Aws Api Gateway,Amazon Sns,简言之,我感兴趣的是构建通过SNS连接的松散耦合的微服务(大多数情况下),以便实时处理API请求 前提 所有这些都需要在单个POST请求-响应主体中发生吗 无法要求客户端拉取以成功上载和/或成功路由 AWS API网关端点 POST/api/documents/uploadAndRouteDownWorkflow,执行documents.upload并从documents.upload和workflows.routedDocument函数接收组合响应,指示完全成功(上载和路由已工作)、部分
- 所有这些都需要在单个POST请求-响应主体中发生吗
- 无法要求客户端拉取以成功上载和/或成功路由
- POST/api/documents/uploadAndRouteDownWorkflow,执行documents.upload并从documents.upload和workflows.routedDocument函数接收组合响应,指示完全成功(上载和路由已工作)、部分成功(上载但未路由)或完全失败(上载失败)
- 从API网关端点调用
- 将文档上载到DMS(文档管理系统)
- 创建一条SNS消息到工作流微服务,以便传送文档
- 从订阅的SNS主题调用
- 发送SNS消息中的文档
- 返回原始api请求的成功/失败
谢谢 下面是它的故障: -工作流.路由文件
- 返回原始api请求的成功/失败
documents.upload
)不知道另一个Lambda函数中发生了什么。workflows.routedDocument
Lambda函数无法访问API网关事件
和上下文
对象,因此无法更新API响应
唯一可行的方法是,API网关调用的Lambda函数进行某种轮询,等待另一个函数调用完成,然后以某种方式访问返回状态(存储在数据库或其他什么东西中),并在响应中返回该状态。我认为这将在您的请求处理中引入大量延迟
在这种情况下,我认为
文档。上传直接调用工作流。RoutedDocumentLambda函数更有意义。因此,如果我理解正确,我需要维护某种类型的同步流,以便返回指示原始POST请求成功失败的结果?在这方面,如果我想保持这些部分松散耦合,我需要寻找AWS之外的另一种解决方案。通过直接回复()阅读RabbitMQ中的RPC模式似乎符合我的兴趣)。AWS中是否有其他方法可以在保持同步行为的同时保持松散耦合?RabbitMQ RPC模式也可以通过Amazon的SQS实现。但是,您需要意识到RabbitMQ仍然在使用队列和轮询来传递响应。在任何完全解耦的解决方案中,您都将拥有一个长期运行的文档。上载函数轮询数据库或队列或等待工作流生成响应的东西。路由文档函数。@DavidGarza您可能对今天的AWS公告感兴趣:很棒的提示!它看起来和我想做的一样。