AWS Lambda proxy response
A Node.js module which generates response payloads for API Gateway fronted Lambda functions integrated via the Lambda proxy method.
The response structure takes the following form:
statusCode: httpStatusCode headers: headerName: 'headerValue' body: '...'
Methods
AWSLambdaProxyResponse([statusCode])
- Creates new
AWSLambdaProxyResponse
instance. - Optional
statusCode
sets the HTTP status code for the response, otherwise defaults to200 / OK
. - Collection of valid HTTP codes defined at
AWSLambdaProxyResponse.HTTP_STATUS
. - Constructor will throw an exception if given
statusCode
is not within this collection.
Example:
const AWSLambdaProxyResponse = ; const resp = AWSLambdaProxyResponseHTTP_STATUSFOUND;
AWSLambdaProxyResponse.setStatusCode(statusCode)
- Sets the HTTP
statusCode
for a response. - Throws an exception if given
statusCode
is not within theAWSLambdaProxyResponse.HTTP_STATUS
collection. - Returns
AWSLambdaProxyResponse
instance.
AWSLambdaProxyResponse.addHeader(name[,value])
- Adds HTTP headers to the Lambda proxy response.
- Single HTTP header can be added by providing a
name
/value
pair. - Multiple headers can be added by providing an object collection as
name
only. - Throws an exception if header names don't match the regular expression pattern
/^[A-Za-z-]+$/
. - Returns
AWSLambdaProxyResponse
instance.
Example:
const AWSLambdaProxyResponse = ;const resp = ; // lets add a single headerresp; // add several othersresp;
AWSLambdaProxyResponse.setBody(body)
- Sets the response body payload.
- If
body
is not of typestring
, will be automatically serialized viaJSON.stringify()
. - Returns
AWSLambdaProxyResponse
instance.
AWSLambdaProxyResponse.getPayload()
Returns a valid Lambda proxy response structure object.
Constants
AWSLambdaProxyResponse.HTTP_STATUS
A collection of valid HTTP status codes for use with the AWSLambdaProxyResponse()
constructor or setStatusCode(statusCode)
method:
const AWSLambdaProxyResponse = ;consoledirAWSLambdaProxyResponseHTTP_STATUS; /*{ OK: 200, MOVED: 301, FOUND: 302, BAD_REQUEST: 400, UNAUTHORIZED: 401, FORBIDDEN: 403, NOT_FOUND: 404, SERVER_ERROR: 500, NOT_IMPLEMENTED: 501, BAD_GATEWAY: 502, SERVICE_UNAVAILABLE: 503, GATEWAY_TIMEOUT: 504}*/
Example usage
Within the context of a Lambda function:
const AWSLambdaProxyResponse = ; exports { // create our response const resp = ; resp; // return from Lambda ; /* console.dir(resp.getPayload()); { statusCode: 200, headers: {}, body: 'Hello world' } */};
A Lambda response that results in a redirect:
const AWSLambdaProxyResponse = ; exports { // create our response const resp = ; resp; resp; // return from Lambda ; /* console.dir(resp.getPayload()); { statusCode: 301, headers: { Location: 'https://my.new.domain.com/' }, body: '' } */};