-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Funqy Amazon Lambda should support more Amazon events #40396
base: main
Are you sure you want to change the base?
Conversation
Support for SQS, SNS, DynamoDB and Kinesis, with focus on the batching feature of AWS. Furthermore, add support for CloudEvents. Add tests for funqy amazon lambda
Thanks for your pull request! The title of your pull request does not follow our editorial rules. Could you have a look?
This message is automatically generated by a bot. |
I am not sure, but I think normally the prs get assigned to a person automatically. Does this mean nobody is responsible for Funqy anymore, and does this mean you drop the support for Funqy? Br, |
Neither assumption is correct, we simply missed this. @patriot1burke is responsible for Funqy |
@geoand thx for the extremly fast response. |
🙏 |
AWS supports cloud events now? |
This is really good. Let me dive in next week. |
Hi @patriot1burke,
Sounds great. Let me know what I messed up and can be improved.
Yes AWS supports CloudEvents. At least kind of. Via AWS EventBridge: https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations-cloudevents.html Br, |
Hi @patriot1burke, I do not really want to change the topic of this pr, but I noticed this log during development in CloudWatch: After checking I found this line of code: Line 59 in 93bc759
Does not this mean that the LambdaPollLoop is also executed in production in case a native build is used? Is this intended? For me this class looks like it should be used for testing (dev / test) purposes only. Am I missing something? |
@holomekc The poll loop runs when you deploy a quarkus lambda as a native executable. It will also run in dev and test mode along with a mock event server. |
@holomekc Oh, and yes, it is intended to work with native executable. Native executables fall under custom lambdas: https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html |
Hi @patriot1burke, thx for the information. I totally missed that. |
Why this feature. We like the Funqy extension. Sadly it makes the usage in AWS a bit difficult at the moment, because although Funqy seems to be cloud agnostic this is not really the case when Event driven sources are used as trigger for a lambda function. E.g. SQS. When using SQS it was necessary to use the SQS model in the funq method, which reduces the benefit of a cloud agnostic solution. Furthermore, it prevents the usage of features of AWS batching.
Requirements
To solve that I thought about the following requirements:
So I checked the following documentation of AWS:
AWS Lambda: https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html
AWS EventBridge Pipes: https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-event-source.html
I checked AWS EventBridge Pipes, because this allows to use CloudEvents in AWS. E.g.:
With an input transformer similar to this:
So what did I do
What is tricky and I could need feedback for
Last words
I know this PR looks huge. There are a lot of json test files though. I would love if you could take a look and tell me what you think. Help would be appreciated.