Serverless compute service for running code without provisioning or managing servers, with automatic scaling and pay-per-request billing.
Main interface for AWS Lambda operations including function management and invocation.
/**
* AWS Lambda client interface
*/
public interface AWSLambda {
String ENDPOINT_PREFIX = "lambda";
// Function management
CreateFunctionResult createFunction(CreateFunctionRequest createFunctionRequest);
GetFunctionResult getFunction(GetFunctionRequest getFunctionRequest);
UpdateFunctionCodeResult updateFunctionCode(UpdateFunctionCodeRequest updateFunctionCodeRequest);
UpdateFunctionConfigurationResult updateFunctionConfiguration(UpdateFunctionConfigurationRequest request);
DeleteFunctionResult deleteFunction(DeleteFunctionRequest deleteFunctionRequest);
ListFunctionsResult listFunctions(ListFunctionsRequest listFunctionsRequest);
ListFunctionsResult listFunctions();
// Function invocation
InvokeResult invoke(InvokeRequest invokeRequest);
// Event source mappings
CreateEventSourceMappingResult createEventSourceMapping(CreateEventSourceMappingRequest request);
ListEventSourceMappingsResult listEventSourceMappings(ListEventSourceMappingsRequest request);
DeleteEventSourceMappingResult deleteEventSourceMapping(DeleteEventSourceMappingRequest request);
// Function versions and aliases
PublishVersionResult publishVersion(PublishVersionRequest publishVersionRequest);
CreateAliasResult createAlias(CreateAliasRequest createAliasRequest);
GetAliasResult getAlias(GetAliasRequest getAliasRequest);
// Lifecycle management
void shutdown();
}/**
* Builder for creating AWS Lambda clients
*/
public final class AWSLambdaClientBuilder extends AwsClientBuilder<AWSLambdaClientBuilder, AWSLambda> {
public static AWSLambdaClientBuilder standard();
public static AWSLambda defaultClient();
}/**
* Request for creating a Lambda function
*/
public class CreateFunctionRequest extends AmazonWebServiceRequest {
public CreateFunctionRequest();
public String getFunctionName();
public String getRuntime();
public String getRole();
public String getHandler();
public FunctionCode getCode();
public String getDescription();
public Integer getTimeout();
public Integer getMemorySize();
public Map<String, String> getEnvironment();
public CreateFunctionRequest withFunctionName(String functionName);
public CreateFunctionRequest withRuntime(Runtime runtime);
public CreateFunctionRequest withRole(String role);
public CreateFunctionRequest withHandler(String handler);
public CreateFunctionRequest withCode(FunctionCode code);
public CreateFunctionRequest withTimeout(Integer timeout);
public CreateFunctionRequest withMemorySize(Integer memorySize);
}
/**
* Function code configuration
*/
public class FunctionCode {
public String getZipFile();
public String getS3Bucket();
public String getS3Key();
public String getS3ObjectVersion();
public FunctionCode withZipFile(ByteBuffer zipFile);
public FunctionCode withS3Bucket(String s3Bucket);
public FunctionCode withS3Key(String s3Key);
}
/**
* Function invocation request
*/
public class InvokeRequest extends AmazonWebServiceRequest {
public InvokeRequest();
public String getFunctionName();
public InvocationType getInvocationType();
public LogType getLogType();
public String getClientContext();
public ByteBuffer getPayload();
public String getQualifier();
public InvokeRequest withFunctionName(String functionName);
public InvokeRequest withInvocationType(InvocationType invocationType);
public InvokeRequest withPayload(String payload);
public InvokeRequest withPayload(ByteBuffer payload);
}
/**
* Function invocation result
*/
public class InvokeResult {
public Integer getStatusCode();
public String getFunctionError();
public String getLogResult();
public ByteBuffer getPayload();
public String getExecutedVersion();
}Usage Examples:
import com.amazonaws.services.lambda.*;
import com.amazonaws.services.lambda.model.*;
// Create Lambda client
AWSLambda lambdaClient = AWSLambdaClientBuilder.defaultClient();
// Create function from S3
FunctionCode code = new FunctionCode()
.withS3Bucket("my-lambda-code-bucket")
.withS3Key("my-function.zip");
CreateFunctionRequest createRequest = new CreateFunctionRequest()
.withFunctionName("my-function")
.withRuntime(Runtime.Java11)
.withRole("arn:aws:iam::123456789012:role/lambda-execution-role")
.withHandler("com.example.Handler::handleRequest")
.withCode(code)
.withTimeout(30)
.withMemorySize(512);
CreateFunctionResult createResult = lambdaClient.createFunction(createRequest);
// Invoke function synchronously
InvokeRequest invokeRequest = new InvokeRequest()
.withFunctionName("my-function")
.withInvocationType(InvocationType.RequestResponse)
.withPayload("{\"key\": \"value\"}");
InvokeResult invokeResult = lambdaClient.invoke(invokeRequest);
String response = new String(invokeResult.getPayload().array());
System.out.println("Function response: " + response);public enum Runtime {
Java8("java8"),
Java11("java11"),
Java17("java17"),
Java21("java21"),
Python38("python3.8"),
Python39("python3.9"),
Python310("python3.10"),
Python311("python3.11"),
Python312("python3.12"),
Nodejs18x("nodejs18.x"),
Nodejs20x("nodejs20.x"),
Dotnet6("dotnet6"),
Dotnet8("dotnet8");
public String toString();
}
public enum InvocationType {
Event, // Asynchronous invocation
RequestResponse, // Synchronous invocation
DryRun // Validate parameters without executing
}
public enum LogType {
None,
Tail // Include last 4KB of execution log
}