【发布时间】:2023-03-08 14:53:01
【问题描述】:
我将 API Gateway-to-Lambda 用于一些微服务,但至少在一种情况下,该服务需要 20-30 秒才能完成,所以在这种情况下,我想立即回复给客户,比如:
status: 200
message: {
progressId: 1234
}
然后让 Lambda 函数继续运行(并定期更新客户端可访问的某处的“processId”。问题是,如果您调用 context.succeed()、context.fail() 或 context.done(),显然会停止进一步执行的 lambda 函数,但这是我知道将标准输出缓冲区刷新回 API 网关的唯一方法。
这让我想到了第二种方法,我还没有尝试解决(为了简单起见,我希望避免),它涉及 API 网关调用“响应程序”Lambda 函数,然后异步触发微服务,然后立即响应 API 网关。
我试图在下面以草图格式说明这两个选项。我很想听听有人是如何解决这个问题的。
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway