docs
AWS Java SDK client for communicating with AWS Lambda Service for function management, invocation, and resource control
npx @tessl/cli install tessl/maven-com-amazonaws--aws-java-sdk-lambda@1.12.0The AWS Lambda SDK for Java provides comprehensive programmatic access to AWS Lambda services. It enables developers to manage Lambda functions, layers, aliases, versions, event sources, function URLs, runtime configurations, account settings, and perform function invocations with full type safety and both synchronous and asynchronous execution models.
pom.xml:<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-lambda</artifactId>
<version>1.12.791-SNAPSHOT</version>
</dependency>import com.amazonaws.services.lambda.AWSLambda;
import com.amazonaws.services.lambda.AWSLambdaClientBuilder;
import com.amazonaws.services.lambda.model.*;For asynchronous operations:
import com.amazonaws.services.lambda.AWSLambdaAsync;
import com.amazonaws.services.lambda.AWSLambdaAsyncClientBuilder;High-level invocation utilities:
import com.amazonaws.services.lambda.invoke.LambdaInvokerFactory;
import com.amazonaws.services.lambda.invoke.LambdaFunction;import com.amazonaws.services.lambda.*;
import com.amazonaws.services.lambda.model.*;
// Create synchronous client
AWSLambda lambdaClient = AWSLambdaClientBuilder.standard()
.withRegion("us-east-1")
.build();
// List functions
ListFunctionsResult functions = lambdaClient.listFunctions();
for (FunctionConfiguration function : functions.getFunctions()) {
System.out.println(function.getFunctionName());
}
// Invoke a function
InvokeRequest invokeRequest = new InvokeRequest()
.withFunctionName("my-function")
.withPayload("{\"key\":\"value\"}");
InvokeResult result = lambdaClient.invoke(invokeRequest);
System.out.println(new String(result.getPayload().array()));The AWS Lambda SDK for Java is built around several key architectural patterns:
AWSLambda for sync, AWSLambdaAsync for async operations)AWSLambdaClientBuilder and configuration optionsAWSLambdaWaitersLambdaInvokerFactory for simplified invocationCore client interfaces and builders for creating Lambda service connections with various configuration options.
public interface AWSLambda {
String ENDPOINT_PREFIX = "lambda";
// 67 service operations...
}
public interface AWSLambdaAsync extends AWSLambda {
// Async versions of all operations returning Future<T>
}Comprehensive function lifecycle operations including creation, configuration, updates, and deletion of Lambda functions.
CreateFunctionResult createFunction(CreateFunctionRequest request);
GetFunctionResult getFunction(GetFunctionRequest request);
UpdateFunctionCodeResult updateFunctionCode(UpdateFunctionCodeRequest request);
UpdateFunctionConfigurationResult updateFunctionConfiguration(UpdateFunctionConfigurationRequest request);
DeleteFunctionResult deleteFunction(DeleteFunctionRequest request);
ListFunctionsResult listFunctions(ListFunctionsRequest request);Direct function invocation capabilities supporting synchronous, asynchronous, and dry-run execution modes with full payload control.
InvokeResult invoke(InvokeRequest request);
InvokeAsyncResult invokeAsync(InvokeAsyncRequest request); // DeprecatedManagement of event source mappings that connect Lambda functions to event sources like DynamoDB, Kinesis, SQS, and Kafka.
CreateEventSourceMappingResult createEventSourceMapping(CreateEventSourceMappingRequest request);
GetEventSourceMappingResult getEventSourceMapping(GetEventSourceMappingRequest request);
UpdateEventSourceMappingResult updateEventSourceMapping(UpdateEventSourceMappingRequest request);
DeleteEventSourceMappingResult deleteEventSourceMapping(DeleteEventSourceMappingRequest request);
ListEventSourceMappingsResult listEventSourceMappings(ListEventSourceMappingsRequest request);Version control and traffic management through function aliases and immutable versions with support for traffic splitting.
PublishVersionResult publishVersion(PublishVersionRequest request);
CreateAliasResult createAlias(CreateAliasRequest request);
UpdateAliasResult updateAlias(UpdateAliasRequest request);
ListVersionsByFunctionResult listVersionsByFunction(ListVersionsByFunctionRequest request);
ListAliasesResult listAliases(ListAliasesRequest request);Lambda layer operations for managing reusable code packages that can be shared across multiple functions.
PublishLayerVersionResult publishLayerVersion(PublishLayerVersionRequest request);
GetLayerVersionResult getLayerVersion(GetLayerVersionRequest request);
DeleteLayerVersionResult deleteLayerVersion(DeleteLayerVersionRequest request);
ListLayersResult listLayers(ListLayersRequest request);
ListLayerVersionsResult listLayerVersions(ListLayerVersionsRequest request);Function concurrency controls including reserved concurrency limits and provisioned concurrency for performance optimization.
PutFunctionConcurrencyResult putFunctionConcurrency(PutFunctionConcurrencyRequest request);
GetFunctionConcurrencyResult getFunctionConcurrency(GetFunctionConcurrencyRequest request);
PutProvisionedConcurrencyConfigResult putProvisionedConcurrencyConfig(PutProvisionedConcurrencyConfigRequest request);
GetProvisionedConcurrencyConfigResult getProvisionedConcurrencyConfig(GetProvisionedConcurrencyConfigRequest request);Code signing configuration and function security features including trusted publisher validation and integrity checks.
CreateCodeSigningConfigResult createCodeSigningConfig(CreateCodeSigningConfigRequest request);
PutFunctionCodeSigningConfigResult putFunctionCodeSigningConfig(PutFunctionCodeSigningConfigRequest request);
GetCodeSigningConfigResult getCodeSigningConfig(GetCodeSigningConfigRequest request);
ListCodeSigningConfigsResult listCodeSigningConfigs(ListCodeSigningConfigsRequest request);Function permission management including resource-based policies and cross-account access control.
AddPermissionResult addPermission(AddPermissionRequest request);
RemovePermissionResult removePermission(RemovePermissionRequest request);
GetPolicyResult getPolicy(GetPolicyRequest request);Type-safe Lambda function invocation through proxy interfaces with automatic JSON serialization and error handling.
public class LambdaInvokerFactory {
public static LambdaInvokerFactoryConfig builder();
public <T> T build(Class<T> interfaceClass);
}
public @interface LambdaFunction {
String functionName() default "";
}High-Level Invocation Utilities
Built-in waiter utilities for polling Lambda resources until they reach desired states with configurable retry policies.
public class AWSLambdaWaiters {
public Waiter<GetFunctionRequest> functionExists();
public Waiter<GetFunctionConfigurationRequest> functionActive();
public Waiter<GetFunctionConfigurationRequest> functionUpdated();
public Waiter<GetFunctionConfigurationRequest> publishedVersionActive();
}HTTP(S) endpoint management for Lambda functions providing dedicated URLs for direct function invocation without API Gateway.
CreateFunctionUrlConfigResult createFunctionUrlConfig(CreateFunctionUrlConfigRequest request);
GetFunctionUrlConfigResult getFunctionUrlConfig(GetFunctionUrlConfigRequest request);
UpdateFunctionUrlConfigResult updateFunctionUrlConfig(UpdateFunctionUrlConfigRequest request);
DeleteFunctionUrlConfigResult deleteFunctionUrlConfig(DeleteFunctionUrlConfigRequest request);
ListFunctionUrlConfigsResult listFunctionUrlConfigs(ListFunctionUrlConfigsRequest request);Configuration and management of Lambda function runtime versions and update policies.
GetRuntimeManagementConfigResult getRuntimeManagementConfig(GetRuntimeManagementConfigRequest request);
PutRuntimeManagementConfigResult putRuntimeManagementConfig(PutRuntimeManagementConfigRequest request);Retrieve account-level Lambda service configuration, usage statistics, and service limits.
GetAccountSettingsResult getAccountSettings(GetAccountSettingsRequest request);Management of metadata tags for Lambda functions and resources for organization, cost allocation, and access control.
TagResourceResult tagResource(TagResourceRequest request);
UntagResourceResult untagResource(UntagResourceRequest request);
ListTagsResult listTags(ListTagsRequest request);// Core configuration types
public class FunctionConfiguration {
private String functionName;
private String functionArn;
private Runtime runtime;
private String role;
private String handler;
private Long codeSize;
private String description;
private Integer timeout;
private Integer memorySize;
private String lastModified;
private String codeSha256;
private String version;
// ... getters and setters
}
public class FunctionCode {
private String zipFile;
private String s3Bucket;
private String s3Key;
private String s3ObjectVersion;
private String imageUri;
// ... getters and setters
}
// Request/Result pattern
public class CreateFunctionRequest {
private String functionName;
private Runtime runtime;
private String role;
private String handler;
private FunctionCode code;
private String description;
private Integer timeout;
private Integer memorySize;
// ... getters and setters
}
// Enumerations
public enum InvocationType {
Event, RequestResponse, DryRun
}
public enum LogType {
None, Tail
}
public enum Runtime {
Nodejs("nodejs"),
Nodejs43("nodejs4.3"),
Nodejs610("nodejs6.10"),
Nodejs810("nodejs8.10"),
Nodejs10X("nodejs10.x"),
Nodejs12X("nodejs12.x"),
Nodejs14X("nodejs14.x"),
Nodejs16X("nodejs16.x"),
Nodejs18X("nodejs18.x"),
Nodejs20X("nodejs20.x"),
Java8("java8"),
Java8Al2("java8.al2"),
Java11("java11"),
Java17("java17"),
Java21("java21"),
Python27("python2.7"),
Python36("python3.6"),
Python37("python3.7"),
Python38("python3.8"),
Python39("python3.9"),
Python310("python3.10"),
Python311("python3.11"),
Python312("python3.12"),
Dotnetcore10("dotnetcore1.0"),
Dotnetcore20("dotnetcore2.0"),
Dotnetcore21("dotnetcore2.1"),
Dotnetcore31("dotnetcore3.1"),
Dotnet6("dotnet6"),
Dotnet8("dotnet8"),
Go1X("go1.x"),
Ruby25("ruby2.5"),
Ruby27("ruby2.7"),
Ruby32("ruby3.2"),
Ruby33("ruby3.3"),
Provided("provided"),
ProvidedAl2("provided.al2"),
ProvidedAl2023("provided.al2023")
}