我有一个NodeJS端点,它接收从报告引擎收集数据的请求。 保持请求端点不亮,并且因为生成的某些报告有几个步骤(收集数据 - >汇编报告 - >转换为PDF - >电子邮件发送给相关人员)我想将入站请求与作业本身分开。
使用AWS.SQS我可以接受请求,将变量放入SQS并使用200/201进行响应。
在另一端选择这项工作有哪些更好的做法? 如果我要触发lambda函数,我必须等待该函数完成才能发送200/201吗?或者我可以:
Accept Request ->
Job to SQS ->
Initiate Lamba function ->
200 Response.
或者可以使用哪些其他选项将入站请求与处理本身分离?
答案 0 :(得分:2)
以下是一些选项:
我不建议将SQS与Lambda结合使用,因为这两种服务不能很好地集成。另一方面,SNS与Lambda的整合非常好。
此外,您需要确保您的Lambda函数调用可以在5分钟内完成,因为这是Lambda函数可以执行的最长时间。如果您需要单独的步骤运行超过5分钟,则需要使用EC2或ECS。
我认为AWS Step Functions可能非常适合您的用例。