Continuing with Localstack, next is a closer look into the code to deploy and execute AWS Lambda code on Localstack from AWS Java-Sdk-v1. The localstack-lambda-java-sdk-v1 code uses the same structure used in localstack-aws-sdk-examples & fills in for the missing AWS Lambda bit.
The LambdaService class has 3 primary methods - listFunctions(), createFunction() & invokeFunction(). The static AWSLambda client is setup with Mock credentials and pointing to the Localstack endpoint.
The main() method first creates the function (createFunction()), if it does not exist.
- It builds a CreateFunctionRequest object with the handler, runtime, role, etc specified
- It also reads the jar file of the Java executable from the resources folder into a FunctionCode object & adds it to the CreateFunctionRequest
- Next a call is made to the AWSLambda client createFunction() with the CreateFunctionRequest which hits the running Localstack instance (Localstack set-up explained earlier).
If all goes well, control returns to main() which invokes the listFunctions() to show details of the created Lambda function (& all others functions existing).
Finally, there is call from main() to invokeFunction() method.
- Which invokes the recently created function with a InvokeRequest object filled with some test values as the payload.
- The response from the invoked function is a InvokeResult object who's payload contains the results of the lambda function computation.
Comments welcome, localstack-lambda-java-sdk-v1 is available to play around!
No comments:
Post a Comment