or run

tessl search
Log in

Version

Files

docs

amazon-cloudwatch.mdamazon-dynamodb.mdamazon-ec2.mdamazon-s3.mdauthentication.mdaws-iam.mdaws-lambda.mdclient-management.mderror-handling.mdindex.md
tile.json

aws-lambda.mddocs/

AWS Lambda

Serverless compute service for running code without provisioning or managing servers, with automatic scaling and pay-per-request billing.

Capabilities

Lambda Client Interface

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

Lambda Client Builder

/**
 * Builder for creating AWS Lambda clients
 */
public final class AWSLambdaClientBuilder extends AwsClientBuilder<AWSLambdaClientBuilder, AWSLambda> {
    public static AWSLambdaClientBuilder standard();
    public static AWSLambda defaultClient();
}

Function Management

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

Types

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
}