AWS API Gateway: 强制返回200 OK 的响应,并将数据传递给后端(使用Python 3.9 Lambda)进行处理?

0

【以下的问题经过翻译处理】 我遇到了一个问题,即如何正确处理第三方(Webhook)的POST请求,该请求期望在收到请求后立即收到200 OK的响应,否则会重发。

我过去曾处理过这样的问题,其中包括一个由API指向的lambda,将消息推送到队列系统(SQS)中,并在完成后返回200 OK。直到需要运行的后端处理完成后,它们就可以安心地处理业务。在API网关层或直接在lambda中,是否有办法强制执行状态响应,而无需等待lambda 运行完成后 返回响应?这是否只是将响应消息与后端解耦的标准?

1 回答
0

【以下的回答经过翻译处理】 您可以考虑使用以下设计模式:

  1. 对于API Gateway,可以使用AWS集成目标,使其直接将消息发送到SQS队列,并从该队列触发Lambda函数进行消息处理。例如,您可以查看Amazon API Gateway到SQS到Lambda模式。
  2. 您可以利用Lambda的异步调用功能,通过API Gateway的Lambda集成来设置后端Lambda函数的异步调用,具体请参见此处:设置后端Lambda函数的异步调用

选项1和2之间的区别在于,选项2的SQS队列由Lambda运行时内部管理,因此您对其配置的控制较少。

这样,API Gateway将在Lambda执行完成前响应调用者。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则