AWS-Response
Purpose
Lib for handling aws requests in single way
Use
Include to your project as git dependency
Use default exported function in next way
const R = ; moduleexportslambda = ;
data
object in function handler contains next fields:
headers
- all headers from api gatewaycontext
- context of current executed functionauthorizer
- data from authorizer.
Using this fields in post/get params if forbidden.
Also it's possible to pass handler
as second param and settings
object as first.
Default settings
fields:
const defaultSettings = data // called first data // than validate and after validation handler is called
Responses
All responses have next shape and returned in compatible format with AWS Lambda proxy integration
statusCode: 200 || 500 header: Access-Control-Allow-Origin: '*' body: 'string'
Success body
"data": "ok": 1 "dataAvailable": true "executionTimeInMs": 6 "originalRequest": "param1": "ok" "param2": "okok" "requestId": 12345 "status": "success"
Error body
"dataAvailable": false "errorData": null "errorMessage": "PANIC" "errorName": "Error" "executionTimeInMs": 4 "originalRequest": "data": "ok" "param2": "2" "requestId": 12345 "status": "error"
Custom body
To achieve customization of the response provide these additional parameters from your lambda function:
Name | Default | Description |
---|---|---|
custom | false |
Flag to enable custom body response |
options | {} |
Custom options such as additional heders, isBase64Encoded , statusCode or any another options you might need |
Please, make sure to have your response
as a string and custom
option is provided.
Example
// labmda.jsconst R = ; { // ... const buffer = Buffer; return custom: true options: isBase64Encoded: true headers: 'Content-Type': 'image/png' response: buffer statusCode: 200 ;} exportshandler = ;
Development
Please check package.json for commands.
Be sure that npm test
and npm run lint
passes.