Commit Graph

95 Commits

Author SHA1 Message Date
Oleg Zhurakousky
aa38cb0e56 GH-784 Modified AWS example to NOT rely on web
Resolves #784
2022-01-26 18:26:37 +01:00
Oleg Zhurakousky
1cc78f7c28 GH-785 Ad initial support for ApplicationLoadBalancerRequestEvent in AWS
Resolves #785
2022-01-25 18:47:51 +01:00
Oleg Zhurakousky
f71b75c9b0 GH-787 Fix 'body' format in JSON output for AWS responses
Resolves #787
2022-01-25 14:00:56 +01:00
Oleg Zhurakousky
bfe4b93179 Cleanup version determination in CustomRuntimeEventLoop 2022-01-17 18:06:52 +01:00
Oleg Zhurakousky
061729673b GH-789 Propagate AWS FunctionInvoker exceptions
They will be handled by the AWS runtime and properly reported and recorded.
Resolves #789
2022-01-12 10:44:29 +01:00
Oleg Zhurakousky
15ab165158 GH-786 Fix regression with RoutingFunction over AWS APIGateway
Resolves #786
2022-01-03 14:42:31 +01:00
Oleg Zhurakousky
5f7313ff31 Add additional logging to CustomRuntimeEventLoop 2021-12-06 12:55:42 +01:00
Oleg Zhurakousky
fccd242987 Change format of user agent to be aligned with the original PR from @msailes 2021-11-12 15:23:25 +01:00
Oleg Zhurakousky
bc37fd5a28 Modified version determination for user-agent, added test 2021-11-12 12:58:06 +01:00
Mark Sailes
015d253106 Send a user-agent header with requests to the Lambda Runtime API.
Adding the author tag.
2021-11-12 12:08:25 +01:00
Oleg Zhurakousky
306895dc17 GH-751 Remove commented code 2021-11-02 12:25:28 +01:00
Oleg Zhurakousky
eeb5448a7d GH-751 Ensure RoutingFunction can be applied when function input type is AWS type 2021-11-02 12:15:08 +01:00
Oleg Zhurakousky
2addf5af7d Restructure and simplify AWS Custom Runtime code
Add Custom Runtime emulator to simplify integration testing
2021-10-20 17:52:52 +02:00
Oleg Zhurakousky
c8f146a98a Refactor CustomRuntimeEventLoop in AWS module to ensure it is spring aot native compatible 2021-09-21 16:08:09 +02:00
Oleg Zhurakousky
6f2759055c GH-743 Remove setting of HTTP 'export' properties for AWS Custom Runtime
Resolves #743
2021-09-16 11:27:17 +02:00
Oleg Zhurakousky
bfbf2d6e8c GH-722 Fix support for API Gateway v2 when Function signature is POJO
Resolves #722
2021-08-17 08:25:28 +02:00
Oleg Zhurakousky
41d0783b77 GH-718 Improve support for Function bean definition
Added sample for functional bean definition
2021-08-03 13:02:15 +02:00
Oleg Zhurakousky
ffd4e43d4b GH-716 Add support for returning custom status code
Resolves #716
2021-07-30 12:42:48 +02:00
Oleg Zhurakousky
619833092a Improve AWSLambdaUtils 2021-07-28 14:56:07 +02:00
Oleg Zhurakousky
3666bf73f7 GH-709, GH-684, GH-641 Upgrade AWS dependency
Refactor and simplify AWSLambdaUtils to work with AWS serialization libraries
Add support for API v2 gateway event

Resolves #709
Resolves #684
Resolves #641
2021-07-22 18:57:57 +02:00
Oleg Zhurakousky
c2d0590ec3 GH-698 Fix routing function support in AWS
Introduce auto-fallback to routing function if more then one function is present and no definition is provided.
Add explicit routing sample

Add documentation
2021-05-21 17:04:01 +02:00
Oleg Zhurakousky
c07aa97d15 Ensure user set headers in API Gateway are properly propagated to message headers 2021-05-18 16:33:04 +02:00
Oleg Zhurakousky
95a1d10dba Add tests for AWS CustomRuntimeEventLoop 2021-05-17 20:03:11 +02:00
Oleg Zhurakousky
fc42819357 GH-662 Fix support for reactive functions in AWS
This commit also includes other minor fixes around CustomRuntime which was getting in the way of this specific issue
 Added lookup for _HANDLER env variable
 Added few tests (will need more)
 Added support for Iterable for reactive functions

Resolves #662
2021-04-08 15:57:14 +02:00
Oleg Zhurakousky
cf58cdc700 GH-673 Change the logic to recognize AWS CustomRuntime
Prior to this it was based on existance of AWS_LAMBDA_RUNTIME_API env variable which turned out to be not very reliable since it is present in Java 11 runtime
With this commit it simple ensures that the handler is neither FunctionInvoker nor AbstractSpringFunctionAdapterInitializer

Resolves #673
2021-04-07 16:13:11 +02:00
pguti778
d8d41cbdcd AWS: Change Default environment values
I've faced the "The key must start with a letter and can only contain letters, numbers, and underscores." issue in the AWS lambda. So both _HANDLER and spring.cloud.function.definition were not enabled to be added as environment variables. Let me know your thoughts.
2021-03-02 22:09:41 -03:00
Oleg Zhurakousky
5485cc33ca GH-639 Fix NPE for when using Supplier with AWS API Gateway
Resolves #639
2021-02-08 10:36:00 +01:00
Oleg Zhurakousky
ed99439f0b GH-552 Fix Consumer support in FunctionInvoker
Further refactor FunctionInvoker to utilize functionality of AWSLambdaUtils
Add Consumer test

Resolves #552
2021-01-26 10:41:25 +01:00
Oleg Zhurakousky
75112076f7 GH-630, GH-530 Additional improvements in AWS Custom Runtime
Ensured we have Custom Runtime examples for functional and '@Bean' style
Improve AWSLambdaUtils to ensure it works without APIGatewayProxyRequestEvent on classpath
2021-01-22 12:31:31 +01:00
Oleg Zhurakousky
a1d10f0771 GH-530, GH-630 Improvements to AWS Custom Runtime
This commit provides initial set of improvements to executing functions in AWS Custom Runtime
- Consistent invocation model for functional as well as @Bean configuration models via new CustomRuntimeEventLoop as well as AWSLambdaUtils
- Clean up classpath to decrease the size of the JAR/ZIP file
- Configuration simplification which no longer requires enabling of function exporter

It also allows user to define functions that rely on AWS types such as APIGatewayProxyRequestEvent

The existing invocation model remains in tact for the time being. Both invocation models are mutually exclusing in theit setup to avoid potential conflict.

Resolves #538
Resolves #630
2021-01-21 22:20:32 +01:00
Oleg Zhurakousky
555526192f GH-618 Remove dependency on FunctionInspector from AWS FunctionInvoker
Resolves #618
2020-12-08 15:00:56 +01:00
Oleg Zhurakousky
c2d8f58e32 Polish to fix build 2020-11-03 15:38:27 +01:00
Oleg Zhurakousky
14ab5ac1b3 Disconnect FunctionInspector from adapter request handlers and Kotlin module 2020-10-20 13:58:51 +02:00
Oleg Zhurakousky
818cda144c Deprecate and remove all usages of FunctionInspector 2020-10-19 18:11:11 +02:00
Oleg Zhurakousky
3f1315c523 Consolidate isMessage() operation 2020-10-19 14:57:55 +02:00
Oleg Zhurakousky
89466b5cdc Refactor FunctionCatalog implementation 2020-10-16 17:59:06 +02:00
Oleg Zhurakousky
21e49aa8e2 GH-574 Fix String wrapping for input/output for AWS APIGateway
As suggested by the user we were improperly wrapping the String payload for input/output during APIGateway interaction

Resolves #574
2020-08-06 16:01:12 +02:00
Oleg Zhurakousky
b245812c6b GH-562 Add type conversion documentation
Add test in AWS to showcase type conversion
Fix AWS FunctionInvoker to delegate to effectively delegate type conversion to the native mechanism of spring-cloud-function

Resolves #562
2020-07-29 20:17:03 +02:00
Oleg Zhurakousky
fa1c27b754 GH-563 Add support for SNSEvent (AWS)
Resolves #563
2020-07-24 15:53:03 +02:00
Oleg Zhurakousky
cefe52365b GH-560 Add explicit support for S3 AWS Event
Resolves #560
2020-07-16 09:41:23 +02:00
Oleg Zhurakousky
840646991c GH-551 Fix support for AWS SQSEvent
Resolves #551
2020-06-22 08:21:04 +02:00
anshlykov
dfa02750c1 Migrate to JUnit 5
spring-cloud-function-context

spring-cloud-function-context: fix

spring-cloud-function-web

spring-cloud-function-adapters

spring-cloud-function-samples

spring-cloud-function-deployer; spring-cloud-function-kotlin

Resolves #535
2020-06-10 16:43:04 +02:00
Oleg Zhurakousky
d6bfac3684 Polishing 0df050ec32 2020-05-27 14:51:51 +02:00
Oleg Zhurakousky
0df050ec32 Fix AWS FunctionInvoker to ensure it properly interprets translation of incoming APIGateway request to user FunctionInvoker
This assumes that
- 'body' will be extracted for cases such as POJO or String input
- Map input will simply represent the incoming request
- APIGatewayProxyRequestEvent input represents native representation of API Gateway request

Similar fixes went for Kinesis side of things
Added additional tests for both Kinesis and ApiGateway
2020-05-27 13:51:30 +02:00
Oleg Zhurakousky
27494567a0 Add propagation of HTTP headers
Polish function composition logic
2020-04-20 18:13:45 +02:00
Oleg Zhurakousky
7bd84c79a2 GH-499,498 Add support for SupplierExporter to control output content-type
- Add 'contentType' property to ExporterProperties to assist SupplierExporter with delegating it to function catalog
- Add additional logging and testing
- Change JsonMapper to abstract class providing special handling of conversion of Json Sting to byte[]
2020-04-20 07:06:18 +02:00
Oleg Zhurakousky
fd93beefdb Fix regression for implicit composition
Also, added message check in AWS destination resolver
2020-04-16 21:05:20 +02:00
Oleg Zhurakousky
01458c7e42 GH-469 Add id to the CustomRuntimeAutoConfiguration bean registration
The name is the decapitalized name of the CustomRuntimeAutoConfiguration class name

Resolves #469
2020-03-31 16:44:42 +02:00
Oleg Zhurakousky
85000ee084 GH-460 Add support for function filtering
Added support for function filtering in the event there are more then one function in catalog. This is primarily to ensure that
we have a mechanism to specify which functions to export as web enpoints (instead of all)

Resolves #460
2020-03-23 11:19:40 +01:00
Oleg Zhurakousky
b71c793dab GH-458 Remove default dependency on ApplicationJsonMessageMarshallingConverter
Resolves #458
2020-03-10 16:13:28 +01:00