or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

account-settings.mdalias-version-management.mdclient-management.mdconcurrency-performance.mdevent-source-mapping.mdfunction-invocation.mdfunction-management.mdfunction-url-management.mdhigh-level-invocation.mdindex.mdlayer-management.mdpermissions-policies.mdruntime-management.mdsecurity-code-signing.mdtagging.mdwaiters-polling.md
tile.json

tessl/maven-com-amazonaws--aws-java-sdk-lambda

AWS Java SDK client for communicating with AWS Lambda Service for function management, invocation, and resource control

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.amazonaws/aws-java-sdk-lambda@1.12.x

To install, run

npx @tessl/cli install tessl/maven-com-amazonaws--aws-java-sdk-lambda@1.12.0

index.mddocs/

AWS Lambda SDK for Java

The 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.

Package Information

  • Package Name: aws-java-sdk-lambda
  • Package Type: maven
  • Language: Java
  • Group ID: com.amazonaws
  • Artifact ID: aws-java-sdk-lambda
  • Version: 1.12.791-SNAPSHOT
  • Installation: Add dependency to Maven pom.xml:
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-lambda</artifactId>
    <version>1.12.791-SNAPSHOT</version>
</dependency>

Core Imports

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;

Basic Usage

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()));

Architecture

The AWS Lambda SDK for Java is built around several key architectural patterns:

  • Client Interfaces: Primary entry points (AWSLambda for sync, AWSLambdaAsync for async operations)
  • Builder Pattern: Fluent client construction with AWSLambdaClientBuilder and configuration options
  • Request/Result Model: Strongly-typed request and result objects for all API operations (67 method pairs)
  • Exception Hierarchy: Specific exception types for different error conditions (extensive exception hierarchy)
  • Waiter Utilities: Built-in polling mechanisms for resource state changes via AWSLambdaWaiters
  • High-level Utilities: Type-safe proxy generation via LambdaInvokerFactory for simplified invocation

Capabilities

Client Management

Core 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>
}

Client Management

Function Management

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);

Function Management

Function Invocation

Direct function invocation capabilities supporting synchronous, asynchronous, and dry-run execution modes with full payload control.

InvokeResult invoke(InvokeRequest request);
InvokeAsyncResult invokeAsync(InvokeAsyncRequest request); // Deprecated

Function Invocation

Event Source Mapping

Management 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);

Event Source Mapping

Alias and Version Management

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);

Alias and Version Management

Layer Management

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);

Layer Management

Concurrency and Performance

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);

Concurrency and Performance

Security and Code Signing

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);

Security and Code Signing

Permissions and Policies

Function permission management including resource-based policies and cross-account access control.

AddPermissionResult addPermission(AddPermissionRequest request);
RemovePermissionResult removePermission(RemovePermissionRequest request);
GetPolicyResult getPolicy(GetPolicyRequest request);

Permissions and Policies

High-Level Invocation Utilities

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

Waiters and Polling

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();
}

Waiters and Polling

Function URL Management

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);

Function URL Management

Runtime Management

Configuration and management of Lambda function runtime versions and update policies.

GetRuntimeManagementConfigResult getRuntimeManagementConfig(GetRuntimeManagementConfigRequest request);
PutRuntimeManagementConfigResult putRuntimeManagementConfig(PutRuntimeManagementConfigRequest request);

Runtime Management

Account Settings and Limits

Retrieve account-level Lambda service configuration, usage statistics, and service limits.

GetAccountSettingsResult getAccountSettings(GetAccountSettingsRequest request);

Account Settings

Resource Tagging

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);

Resource Tagging

Types

// 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")
}