Handing back a response to API Gateway from Lambda

Currently API Gateway requires that the AWS Lambda integration is synchronous. If you desire asynchronous invocation of your Lambda function, you have 2 options:

  1. Invoking the Lambda asynchrously, either with an AWS integration calling InvokeAsync on Lambda, or using an intermediate service such as SNS or Kinesis to trigger the Lambda function.

  2. You're #2 diagram, using a synchronous Lambda invoke to initiate the asynchronous invoke.


As of Apr/2016 is it is possible to create async Lambda execution through API Gateway by using AWS Service Proxy. See http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-lambda.html


You can send the X-Amz-Invocation-Type header, it supports async calls through the Event value

You can optionally request asynchronous execution by specifying Event as the InvocationType

http://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestSyntax

Also, if you can't send it via your micro-service, you can configure this header to be passed by default through the Method Execution -> Integration Request -> HTTP Headers in your API Gateway Resource

This worked for me on a micro-service -> API Gateway -> Lambda scenario, like the mentioned on the question.