AWS Java SDK client for communicating with AWS Lambda Service for function management, invocation, and resource control
—
Comprehensive function lifecycle operations including creation, configuration, updates, and deletion of Lambda functions with support for ZIP packages, container images, and various runtime configurations.
Creates a new Lambda function from a deployment package.
/**
* Creates a Lambda function from deployment package (ZIP or container image)
* @param request Function creation parameters including code, runtime, handler, and role
* @return CreateFunctionResult containing function configuration details
* @throws ServiceException if service encounters an error
* @throws ResourceConflictException if function with same name exists
* @throws InvalidParameterValueException if parameters are invalid
*/
CreateFunctionResult createFunction(CreateFunctionRequest request);
public class CreateFunctionRequest {
/** Function name (required) - 1-64 characters, pattern: [a-zA-Z0-9-_]+ */
private String functionName;
/** Function runtime (required) */
private Runtime runtime;
/** IAM role ARN (required) */
private String role;
/** Function handler (required for ZIP packages) */
private String handler;
/** Function code (required) */
private FunctionCode code;
/** Function description (optional) */
private String description;
/** Timeout in seconds (optional, default: 3, max: 900) */
private Integer timeout;
/** Memory size in MB (optional, default: 128, range: 128-10240) */
private Integer memorySize;
/** Whether to publish version (optional, default: false) */
private Boolean publish;
/** VPC configuration (optional) */
private VpcConfig vpcConfig;
/** Dead letter queue configuration (optional) */
private DeadLetterConfig deadLetterConfig;
/** Environment variables (optional) */
private Environment environment;
/** KMS key ARN for encryption (optional) */
private String kmsKeyArn;
/** X-Ray tracing configuration (optional) */
private TracingConfig tracingConfig;
/** Function tags (optional) */
private Map<String, String> tags;
/** Function layers (optional) */
private List<String> layers;
/** File system configurations (optional) */
private List<FileSystemConfig> fileSystemConfigs;
/** Image configuration for container images (optional) */
private ImageConfig imageConfig;
/** Code signing config ARN (optional) */
private String codeSigningConfigArn;
/** Instruction set architecture (optional) */
private List<String> architectures;
/** Ephemeral storage configuration (optional) */
private EphemeralStorage ephemeralStorage;
/** Logging configuration (optional) */
private LoggingConfig loggingConfig;
// Standard getters and setters with fluent API
public CreateFunctionRequest withFunctionName(String functionName) { ... }
public CreateFunctionRequest withRuntime(Runtime runtime) { ... }
// ... other fluent setters
}
public class CreateFunctionResult {
/** Function name */
private String functionName;
/** Function ARN */
private String functionArn;
/** Function runtime */
private Runtime runtime;
/** IAM role ARN */
private String role;
/** Function handler */
private String handler;
/** Code size in bytes */
private Long codeSize;
/** Function description */
private String description;
/** Timeout in seconds */
private Integer timeout;
/** Memory size in MB */
private Integer memorySize;
/** Last modified timestamp */
private String lastModified;
/** Code SHA256 hash */
private String codeSha256;
/** Function version */
private String version;
/** VPC configuration */
private VpcConfigResponse vpcConfig;
/** Dead letter queue configuration */
private DeadLetterConfig deadLetterConfig;
/** Environment variables */
private EnvironmentResponse environment;
/** KMS key ARN */
private String kmsKeyArn;
/** X-Ray tracing configuration */
private TracingConfigResponse tracingConfig;
/** Master ARN (for edge functions) */
private String masterArn;
/** Revision ID */
private String revisionId;
/** Function layers */
private List<Layer> layers;
/** Function state */
private State state;
/** State reason */
private String stateReason;
/** State reason code */
private StateReasonCode stateReasonCode;
/** Last update status */
private LastUpdateStatus lastUpdateStatus;
/** Last update status reason */
private String lastUpdateStatusReason;
/** Last update status reason code */
private LastUpdateStatusReasonCode lastUpdateStatusReasonCode;
/** File system configurations */
private List<FileSystemConfig> fileSystemConfigs;
/** Package type */
private PackageType packageType;
/** Image configuration */
private ImageConfigResponse imageConfig;
/** Signing profile version ARN */
private String signingProfileVersionArn;
/** Signing job ARN */
private String signingJobArn;
/** Instruction set architectures */
private List<String> architectures;
/** Ephemeral storage configuration */
private EphemeralStorage ephemeralStorage;
/** Logging configuration */
private LoggingConfig loggingConfig;
// Standard getters
}Gets function information including configuration and download link.
/**
* Returns function information with signed download URL (valid 10 minutes)
* @param request Function retrieval parameters
* @return GetFunctionResult containing function metadata and code location
* @throws ServiceException if service encounters an error
* @throws ResourceNotFoundException if function doesn't exist
*/
GetFunctionResult getFunction(GetFunctionRequest request);
public class GetFunctionRequest {
/** Function name, ARN, or qualified ARN (required) */
private String functionName;
/** Function version or alias (optional, default: $LATEST) */
private String qualifier;
public GetFunctionRequest withFunctionName(String functionName) { ... }
public GetFunctionRequest withQualifier(String qualifier) { ... }
}
public class GetFunctionResult {
/** Function configuration */
private FunctionConfiguration configuration;
/** Function code location */
private FunctionCodeLocation code;
/** Function tags */
private Map<String, String> tags;
/** Concurrency settings */
private Concurrency concurrency;
// Standard getters
}Gets version-specific configuration settings without code information.
/**
* Returns version-specific function configuration metadata
* @param request Configuration retrieval parameters
* @return GetFunctionConfigurationResult containing function settings
* @throws ServiceException if service encounters an error
* @throws ResourceNotFoundException if function doesn't exist
*/
GetFunctionConfigurationResult getFunctionConfiguration(GetFunctionConfigurationRequest request);
public class GetFunctionConfigurationRequest {
/** Function name, ARN, or qualified ARN (required) */
private String functionName;
/** Function version or alias (optional, default: $LATEST) */
private String qualifier;
public GetFunctionConfigurationRequest withFunctionName(String functionName) { ... }
public GetFunctionConfigurationRequest withQualifier(String qualifier) { ... }
}
public class GetFunctionConfigurationResult {
/** Function name */
private String functionName;
/** Function ARN */
private String functionArn;
/** Function runtime */
private Runtime runtime;
/** IAM role ARN */
private String role;
/** Function handler */
private String handler;
/** Code size in bytes */
private Long codeSize;
/** Function description */
private String description;
/** Timeout in seconds */
private Integer timeout;
/** Memory size in MB */
private Integer memorySize;
/** Last modified timestamp */
private String lastModified;
/** Code SHA256 hash */
private String codeSha256;
/** Function version */
private String version;
// ... additional configuration fields same as CreateFunctionResult
}Updates function code for ZIP or container image packages.
/**
* Updates function code with new deployment package
* @param request Code update parameters
* @return UpdateFunctionCodeResult containing updated function configuration
* @throws ServiceException if service encounters an error
* @throws ResourceNotFoundException if function doesn't exist
* @throws InvalidParameterValueException if parameters are invalid
* @throws ResourceConflictException if function is being modified
*/
UpdateFunctionCodeResult updateFunctionCode(UpdateFunctionCodeRequest request);
public class UpdateFunctionCodeRequest {
/** Function name (required) */
private String functionName;
/** ZIP file content (base64 encoded, max 50MB) */
private String zipFile;
/** S3 bucket name */
private String s3Bucket;
/** S3 object key */
private String s3Key;
/** S3 object version */
private String s3ObjectVersion;
/** Container image URI */
private String imageUri;
/** Whether to publish new version (optional, default: false) */
private Boolean publish;
/** Whether to perform dry run (optional, default: false) */
private Boolean dryRun;
/** Expected revision ID for conditional update (optional) */
private String revisionId;
/** Instruction set architectures (optional) */
private List<String> architectures;
public UpdateFunctionCodeRequest withFunctionName(String functionName) { ... }
public UpdateFunctionCodeRequest withZipFile(String zipFile) { ... }
public UpdateFunctionCodeRequest withS3Bucket(String s3Bucket) { ... }
// ... other fluent setters
}
public class UpdateFunctionCodeResult {
// Same fields as CreateFunctionResult
private String functionName;
private String functionArn;
private Runtime runtime;
// ... all configuration fields
}Modifies version-specific function settings.
/**
* Updates function configuration settings (not code)
* @param request Configuration update parameters
* @return UpdateFunctionConfigurationResult with updated settings
* @throws ServiceException if service encounters an error
* @throws ResourceNotFoundException if function doesn't exist
* @throws InvalidParameterValueException if parameters are invalid
* @throws ResourceConflictException if function is being modified
*/
UpdateFunctionConfigurationResult updateFunctionConfiguration(UpdateFunctionConfigurationRequest request);
public class UpdateFunctionConfigurationRequest {
/** Function name (required) */
private String functionName;
/** IAM role ARN (optional) */
private String role;
/** Function handler (optional) */
private String handler;
/** Function description (optional) */
private String description;
/** Timeout in seconds (optional, range: 1-900) */
private Integer timeout;
/** Memory size in MB (optional, range: 128-10240) */
private Integer memorySize;
/** VPC configuration (optional) */
private VpcConfig vpcConfig;
/** Environment variables (optional) */
private Environment environment;
/** Function runtime (optional) */
private Runtime runtime;
/** Dead letter queue configuration (optional) */
private DeadLetterConfig deadLetterConfig;
/** KMS key ARN (optional) */
private String kmsKeyArn;
/** X-Ray tracing configuration (optional) */
private TracingConfig tracingConfig;
/** Expected revision ID for conditional update (optional) */
private String revisionId;
/** Function layers (optional) */
private List<String> layers;
/** File system configurations (optional) */
private List<FileSystemConfig> fileSystemConfigs;
/** Image configuration (optional) */
private ImageConfig imageConfig;
/** Ephemeral storage configuration (optional) */
private EphemeralStorage ephemeralStorage;
/** Logging configuration (optional) */
private LoggingConfig loggingConfig;
public UpdateFunctionConfigurationRequest withFunctionName(String functionName) { ... }
public UpdateFunctionConfigurationRequest withRole(String role) { ... }
// ... other fluent setters
}
public class UpdateFunctionConfigurationResult {
// Same fields as CreateFunctionResult
private String functionName;
private String functionArn;
// ... all configuration fields
}Deletes function including all versions and aliases.
/**
* Deletes Lambda function, all versions, and aliases
* @param request Function deletion parameters
* @return DeleteFunctionResult (empty response)
* @throws ServiceException if service encounters an error
* @throws ResourceNotFoundException if function doesn't exist
* @throws InvalidParameterValueException if parameters are invalid
* @throws ResourceConflictException if function is being modified
*/
DeleteFunctionResult deleteFunction(DeleteFunctionRequest request);
public class DeleteFunctionRequest {
/** Function name (required) */
private String functionName;
/** Function version or alias (optional, deletes specific version if provided) */
private String qualifier;
public DeleteFunctionRequest withFunctionName(String functionName) { ... }
public DeleteFunctionRequest withQualifier(String qualifier) { ... }
}
public class DeleteFunctionResult {
// Empty response
}Lists Lambda functions with pagination support.
/**
* Lists Lambda functions (up to 50 per call)
* @param request Function listing parameters
* @return ListFunctionsResult containing function list and pagination token
* @throws ServiceException if service encounters an error
* @throws InvalidParameterValueException if parameters are invalid
*/
ListFunctionsResult listFunctions(ListFunctionsRequest request);
/**
* Lists all Lambda functions with default parameters
* @return ListFunctionsResult containing function list
*/
ListFunctionsResult listFunctions();
public class ListFunctionsRequest {
/** ARN of master function (for edge functions, optional) */
private String masterRegion;
/** Function version filter (optional, values: ALL) */
private String functionVersion;
/** Pagination token from previous call (optional) */
private String marker;
/** Maximum functions to return (optional, range: 1-50, default: 50) */
private Integer maxItems;
public ListFunctionsRequest withMasterRegion(String masterRegion) { ... }
public ListFunctionsRequest withFunctionVersion(String functionVersion) { ... }
// ... other fluent setters
}
public class ListFunctionsResult {
/** Next pagination token (null if no more results) */
private String nextMarker;
/** List of function configurations */
private List<FunctionConfiguration> functions;
// Standard getters
}Usage Examples:
import com.amazonaws.services.lambda.*;
import com.amazonaws.services.lambda.model.*;
import java.nio.ByteBuffer;
import java.util.Base64;
// Create client
AWSLambda lambdaClient = AWSLambdaClientBuilder.defaultClient();
// Create function from ZIP file
byte[] zipContent = // ... load ZIP file bytes
CreateFunctionRequest createRequest = new CreateFunctionRequest()
.withFunctionName("my-java-function")
.withRuntime(Runtime.java11)
.withRole("arn:aws:iam::123456789012:role/lambda-execution-role")
.withHandler("com.example.MyHandler::handleRequest")
.withCode(new FunctionCode().withZipFile(ByteBuffer.wrap(zipContent)))
.withDescription("My Java Lambda function")
.withTimeout(30)
.withMemorySize(512)
.withEnvironment(new Environment()
.addVariablesEntry("ENV", "production")
.addVariablesEntry("LOG_LEVEL", "INFO"));
CreateFunctionResult createResult = lambdaClient.createFunction(createRequest);
System.out.println("Created function: " + createResult.getFunctionArn());
// Update function code from S3
UpdateFunctionCodeRequest updateCodeRequest = new UpdateFunctionCodeRequest()
.withFunctionName("my-java-function")
.withS3Bucket("my-lambda-bucket")
.withS3Key("my-function-v2.zip")
.withPublish(true);
UpdateFunctionCodeResult updateResult = lambdaClient.updateFunctionCode(updateCodeRequest);
System.out.println("Updated to version: " + updateResult.getVersion());
// Update function configuration
UpdateFunctionConfigurationRequest updateConfigRequest = new UpdateFunctionConfigurationRequest()
.withFunctionName("my-java-function")
.withTimeout(60)
.withMemorySize(1024)
.withEnvironment(new Environment()
.addVariablesEntry("ENV", "production")
.addVariablesEntry("LOG_LEVEL", "DEBUG"));
UpdateFunctionConfigurationResult configResult = lambdaClient.updateFunctionConfiguration(updateConfigRequest);
// Get function information
GetFunctionRequest getRequest = new GetFunctionRequest()
.withFunctionName("my-java-function");
GetFunctionResult getResult = lambdaClient.getFunction(getRequest);
System.out.println("Function state: " + getResult.getConfiguration().getState());
// List all functions
ListFunctionsResult listResult = lambdaClient.listFunctions();
for (FunctionConfiguration func : listResult.getFunctions()) {
System.out.println(func.getFunctionName() + " - " + func.getRuntime());
}
// Delete function
DeleteFunctionRequest deleteRequest = new DeleteFunctionRequest()
.withFunctionName("my-java-function");
lambdaClient.deleteFunction(deleteRequest);Install with Tessl CLI
npx tessl i tessl/maven-com-amazonaws--aws-java-sdk-lambdadocs