调用 AWS Lambda 并异步返回对 API Gateway 的响应

Ara*_*nde 6 amazon-web-services aws-lambda aws-api-gateway

我的用例是,我将拥有一个以 API Gateway 结尾的 AWS Lambda 前端。

我的要求是,一旦 Lambda 被调用,它应该将 200 OK 响应返回给 API Gateway,API Gateway 将其转发给调用者。然后 Lambda 应该开始实际处理负载。

这样做的原因是 API 网关调用方服务期望在 10 秒内得到响应,否则就会超时。所以我想在开始处理之前给出回应。

这可能吗?

Mic*_*bot 6

使用 API Gateway 的“Lambda 函数”集成类型,您无法使用单个 Lambda 函数执行此操作——该接口专门设计为同步。如果您想使用 Lambda 函数集成类型,解决方法是让网关调用的同步 Lambda 函数通过 Lambda API 调用第二个异步 Lambda 函数。

但是,异步调用可以在没有解决方法的情况下使用AWS 服务代理集成而不是Lambda 函数集成。

如果您的 API 在后端仅对 Lambda 函数进行同步调用,则您应该使用 Lambda 函数集成类型。[...]

如果您的 API 对 Lambda 函数进行异步调用,您必须使用本节中描述的 AWS 服务代理集成类型。这些说明也适用于同步 Lambda 函数调用的请求。对于异步调用,您必须将X-Amz-Invocation-Type:Event标头显式添加到集成请求中。

http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-lambda.html