API网关异步(回调)在使用EC2中的Lambda或Workers进行处理后对调用方的响应

问题描述 投票:0回答:1

我们正在AWS中制作规则引擎。该引擎由用于存储信息的noSql数据库Dynamos DB,用于进行调用的api网关和用于处理来自Api的调用的lambda函数组成。这里没什么新鲜事。

我们使用的算法非常有效地评估每个事件的规则并发回响应。此响应将进程ID和已实现的事件提供给调用者。显然,如果我们添加更多规则或制作复杂的规则模型,响应时间就会开始增加。当我们需要快速响应API时,这并不好。

为了解决这个问题,我们考虑一个解决方案,返回一个200 OK响应,一个进程id给调用者和ant同时调用另一个lambda来处理所有规则(这很容易)。当我们想要通知调用者进程结果以根据此响应触发调用方的某些操作时,问题就会出现。

这个要求有什么解决方案吗?比如回调异步url?模拟延迟响应补充第一个响应(200 OK)?

AWS实施示例:

我正在使用架构模型附加图像,我想知道一些解决方案来制作第10点和第11点。

谢谢你们!!

amazon-web-services asynchronous callback aws-lambda aws-api-gateway
1个回答
0
投票

我遇到了类似的问题,这就是我解决它的方法。

脚步:

  1. 收集请求并放入kinesis,返回进程ID
  2. Kinesis逐个向RulesEngine发送请求
  3. 规则引擎评估规则并将结果写回
  4. 结果读者将使用来自dynamodb的processid读取结果并将其提供给用户

Architecture Diagram

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.