You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React调用AWS与SQS的通用架构及工作流技术咨询

AWS架构与工作流方案建议

一、Lambda处理第三方响应的最优模式

推荐采用双Lambda+双SQS+DynamoDB的异步模式,规避Lambda执行超时风险,流程如下:

  • 第一个Lambda(由API Gateway触发):生成全局唯一请求ID,将请求ID和业务数据发送至业务SQS队列,随后直接把请求ID返回给React客户端,无需等待第三方响应。
  • 第三方系统处理完成后,将携带请求ID的结果发送至响应SQS队列,该队列直接触发第二个Lambda。
  • 第二个Lambda:接收响应消息,以请求ID为主键,将结果/状态更新存储到DynamoDB中。

针对你的疑问补充:

  • 无需持续轮询第三方,让第三方主动回传结果到响应SQS即可;触发第二个Lambda的是队列消息到达事件,而非轮询。
  • React客户端通过请求ID查询结果,只需调用API Gateway的查询接口(对应专门的Lambda,负责从DynamoDB读取数据)。

二、React客户端状态更新方案

不建议前端直接访问SQS(权限管控复杂,且SQS不适合实时查询场景),推荐以下两种方案:

方案1:短轮询(简单易实现)

  • 用Axios/Fetch定期调用API Gateway的查询接口,传入请求ID,获取DynamoDB中的实时状态/结果,同步更新前端UI。
  • 可根据业务阶段调整轮询间隔(比如处理初期10秒一次,临近预期完成时间缩短至2秒一次)。

方案2:WebSocket推送(实时性更强)

  • 配置API Gateway WebSocket服务,React客户端连接后保持长连接。
  • 当第二个Lambda更新DynamoDB时,同时通过WebSocket向对应请求ID的客户端推送状态更新,前端实时接收并更新UI。

关于Amplify的使用

可以借助Amplify的API或DataStore模块简化后端交互:

  • 通过Amplify封装的接口调用Lambda查询DynamoDB,无需自行编写复杂的HTTP请求逻辑。
  • 但前端仍不能直接访问SQS,必须通过后端(Lambda/Amplify后端服务)中转。

内容的提问来源于stack exchange,提问作者Jonathan Scion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:42:41