I have created simple Lambda function and upload this to AWS Lambda.
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.r
Another way to invoke lambda from java code is to use LambdaInvokerFactory
and I found this approach cleaner.
You need to do the following:
Define interface representing your function and annotate method with @LambdaFunction
Create implementation of the above interface using LambdaInvokerFactory
Invoke lambda function using just created proxy object (interface implementation)
More detailed example can be found here.
Given the information in your comment, your client code to invoke the function is fine. The problem appears to be with the configuration of the function itself. Specifically, AWS Lambda is not able to find the handler you've specified (com.aws.HelloLambda::handleRequest
) because that doesn't match the name and package of your handler class (Hello
) and the name of your method in that class (handleRequest
).
You can update the function handler name through the AWS Console. Choose your function, then the configuration tab and then the Handler property.
You probably want to change it from com.aws.HelloLambda::handleRequest
to Hello::handleRequest
.
Before testing the function from your Java client, you could test it directly through the console, this will help you ensure the function is configured correctly.