vandium-node icon indicating copy to clipboard operation
vandium-node copied to clipboard

Using Vandium with AWS SAM CLI

Open skylerrichter opened this issue 6 years ago • 3 comments

What are the best practices for using Vandium with AWS SAM CLI?

Everything works great when I am using CLI events and Postman to test my endpoints, however when I try to consume endpoints via my client application CORS does not seem to be enabled.

I have added this to my handler:

.cors({
  allowOrigin: 'http://localhost:8080',
  allowCredentials: true
})

And I have this in my SAM template:

Api:
  Cors:
    AllowMethods: "'*'"
    AllowHeaders: "'*'"
    AllowOrigin: "'*'"

However Vandium does not respond to the pre flight OPTION request, and does not seem to have a method for defining OPTION routes.

I had to make a vanilla lambda to respond to OPTION requests:

exports.handler = function (event, context, callback) {
  callback(null, {
    'statusCode': 200,
    'headers': {
      'Access-Control-Allow-Origin': 'http://localhost:8080',
      'Access-Control-Allow-Headers': 'Content-Type',
    },
  });
}

What is the right way of dealing with this?

skylerrichter avatar Jul 20 '18 22:07 skylerrichter

There's an issue that has been raised with the SAM project - not sure if that might help. I would caution against having the lambda code handle the OPTIONS request. Typically it's handled with an API Gateway Mock request

richardhyatt avatar Jul 23 '18 23:07 richardhyatt

@richardhyatt it seems the doc has been updated to state that if using lambda proxy you must handle your own options request: For a Lambda proxy integration or HTTP proxy integration, you can still set up the required OPTIONS response headers in API Gateway. However, your backend is responsible for returning the Access-Control-Allow-Origin and Access-Control-Allow-Headers headers, because a proxy integration doesn't return an integration response.

lolJS avatar May 07 '19 21:05 lolJS

The 5.x and 6.0 versions changed how response headers are handled. Is this issue still valid?

richardhyatt avatar Jan 08 '20 13:01 richardhyatt