Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 22 18:43
    willfarrell commented #734
  • Oct 22 18:37
    willfarrell commented #735
  • Oct 22 18:35
    willfarrell closed #737
  • Oct 22 18:34
    willfarrell labeled #738
  • Oct 21 20:19
    tsn731 commented #186
  • Oct 21 01:18
    markcarroll opened #738
  • Oct 18 13:55
    omer-to commented #734
  • Oct 17 23:27
    dennisc9 commented #737
  • Oct 17 23:27
    dennisc9 commented #737
  • Oct 17 22:12
    dennisc9 opened #737
  • Oct 17 02:19
    willfarrell labeled #736
  • Oct 16 12:19
    Kelvijn opened #736
  • Oct 15 14:08
    omer-to opened #735
  • Oct 14 14:33
    onhate commented #473
  • Oct 13 20:43
    joeythomaschaske commented #473
  • Oct 13 20:43
    joeythomaschaske commented #473
  • Oct 13 14:52
    omer-to opened #734
  • Oct 12 19:34
    sidharth-shridhar commented #731
  • Oct 12 19:33
    sidharth-shridhar closed #731
  • Oct 12 19:33
    sidharth-shridhar commented #731
will Farrell
@willfarrell
If you want to follow what's happing with v2, subscribe to this issue: middyjs/middy#585.
1 reply
Yang Yang
@zacyang
Hi all, I just switched my middy handle from the old (e,c, cb)=> {}. to async function, but , the original lambda function stoped return content (AWS lambda), is there some additional middleware I have to add to use async handler?
will Farrell
@willfarrell
@zacyang Thanks for reaching out. Changing from callback to promise does also require you to return the response instead of using the callback function. There is an example in the README. This is a common pain point for many. We've rebuilt middy to remove the callback option in v2 to make this easier for all. We hope to have an alpha out in the next week (you can check it out sooner on the release/v2 branch). Plans to have it released after AWS supports Node.js v14.
will Farrell
@willfarrell
1 reply
Luciano Mammino
@lmammino
middy 2.0 is there!
Davide Behr
@behr-davide
Quick question.. can code outside of a handler function use parameters loaded by the SSM middleware? I logged the process.env object outside of my handler and it did not contain the SSM param I fetched.
will Farrell
@willfarrell
In v1 you need to consider when things are triggered in the event cycle. So, yes it can. Saving to context should make it easier. In v2 there is an all-new internal object that can be used to share data between middleware securely and asynchronously to make these usecases easier.
Davide Behr
@behr-davide
Good to know -- thanks for your response and thank you to everyone who contributes to middy! :pray:
Luciano Mammino
@lmammino
Voxel Group has just announced a port of middy to the .net runtime: https://twitter.com/vgaltes/status/1366371605337825284
will Farrell
@willfarrell
Middy passed 100k downloads per week. Crazyness. https://www.npmtrends.com/@middy/core-vs-middy
Oh yeah, v2 beta is now releaseed :)
Luciano Mammino
@lmammino
WOOW great news!
Luciano Mammino
@lmammino
will Farrell
@willfarrell
I was wondering how they allowed "streaming" file changes since lambda doesn't support streamed responses. Not a fan of the pattern their using, I think we could make this much better. I was hoping they would pass in a read stream and we could return a transform stream. I'll for sure use this feature once terraform supports it. I see a lot of value in having a middleware for this to make it way easier.
Luciano Mammino
@lmammino
I had the exact same thought and I was a bit disappointed too :D However, from what i have seen in the api to create a custom lambda executor, I think doing a streaming implementation for Node.js could be feasible. I had a look sometime ago but if I remember correclty in that abstraction you have access to raw http requests, therefore you should be able to access streaming requests and provide streaming responses...
will Farrell
@willfarrell
Seriously, this is possible now? I've been waiting for streaming responses since apig was introduced. We have to add this to middy :P
Luciano Mammino
@lmammino
I might have to experiment a little with creating a non-standard executor
and see if my instincts are actually correct :D
will Farrell
@willfarrell
having stream requests/responses in middy would be a game-changer.
will Farrell
@willfarrell
@/all Looking for some feedback. I'm looking into adding in support for parsing nested aws events, ex: s3 -> sns -> sqs. In this example would you prefer using; a) single middlware for the source event (s3 in this case) that parses the wrapper events (sns/sqs) as well; b) have a parser for each event, and each would need to be applied in the correct order of use; c) single middleware for any event with wrapper event parsing.
They all have their pros/cons. Let me know what you think, which would you prefer to use?
Luciano Mammino
@lmammino
https://nodeweekly.com/issues/384 A middy interview here! <3
will Farrell
@willfarrell
middy is listed on the new ajv website homepage. https://ajv.js.org/
khirodAsurion
@khirodAsurion
Guys , i have a very simple payload via api-0gateway to lambda {"email":"abc@gmail.com"}. and my Schema looks like this .const inputRequestSchema = { type: 'object', required: [ 'email', ], properties: { email: { type: 'string', }, }, additionalProperties: true, }; when i fire up the request , i get error message: 'must have required property email'les/@middy/core/index.js?:80:5) {ex.js?:51:21) Event object failed validation. any help here ? i am using following dependency "@middy/core": "^2.2.0", "@middy/http-error-handler": "^2.2.0", "@middy/http-header-normalizer": "^2.2.0", "@middy/http-json-body-parser": "^2.2.0", "@middy/validator": "^2.2.0". . use of middleware code \ export const handler = middy(handlerLambda) .use(httpHeaderNormalizer()) .use(httpJsonBodyParser()) .use(validator({ inputSchema: inputRequestSchema })) .use(httpErrorHandler());
will Farrell
@willfarrell
@khirodAsurion your input schema doesn't match what API Gateway sends in. Should look something like: { "queryStringParameters":{...}, "body":{...} }. https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html
khirodAsurion
@khirodAsurion
@willfarrell thanks for the quick response. but I am only interested to validating body . in that case should I always have to provide other details also in schema ? or is there any other way ? See that I am adding additionalProperties: true, just to make sure other added by APIGateway do not create issue .but still it says message: 'must have required property email'les/@middy/core/index.js?:80:5) {ex.js?:51:21) Event object failed validation
will Farrell
@willfarrell
Your schema only need to include what you want to validate, but must expected the warper object around your request.
khirodAsurion
@khirodAsurion
Thanks @willfarrell . That worked. ! Although I am not sure if i use .use(httpErrorHandler()); I still do not see the real error around the Schema diff thrown as an error . It only says very generic message
will Farrell
@willfarrell
If you want to return errors, you need to handler ajv errors yourself. There isn't a standard everyone follows so we can't do it for you. httpErrorHandler is a catch all if an error hasn't already been handled. It returns a generic message (which can be overridden), because you don't want stack traces returned to the consumer, leading to leaking too much information (security best practice).
khirodAsurion
@khirodAsurion
thanks
Maximillian Naza
@2Clutch
Hello. I currently have an Express API I'm looking to migrate to Middy. Is there a tutorial or some piece of documentation I can use as a compass to guide me in my efforts?
will Farrell
@willfarrell
Not that's I'm aware of, but if you find one, I'd be happy to merge it into the docs.
Maximillian Naza
@2Clutch
That's unfortunate. I'm not sure to translate the concept of an endpoint over to middy. or in other words, how do I determine what to do with a request once I receive it?
Has anyone here built an API with middy? If so, I'd love to take a look at it (assuming it's in a public repo)