The following code examples show how to create a Lambda function.
Note
The source code for these examples is in the AWS Code Examples GitHub repository. Have feedback on a code example? Create an Issue in the code examples repo.
SDK for Java 2.x
To learn how to set up and run this example, see GitHub.
public static void createLambdaFunction(LambdaClient awsLambda,
String functionName,
String filePath,
String role,
String handler) {
try {
LambdaWaiter waiter = awsLambda.waiter();
InputStream is = new FileInputStream(filePath);
SdkBytes fileToUpload = SdkBytes.fromInputStream(is);
FunctionCode code = FunctionCode.builder()
.zipFile(fileToUpload)
.build();
CreateFunctionRequest functionRequest = CreateFunctionRequest.builder()
.functionName(functionName)
.description("Created by the Lambda Java API")
.code(code)
.handler(handler)
.runtime(Runtime.JAVA8)
.role(role)
.build();
// Create a Lambda function using a waiter.
CreateFunctionResponse functionResponse = awsLambda.createFunction(functionRequest);
GetFunctionRequest getFunctionRequest = GetFunctionRequest.builder()
.functionName(functionName)
.build();
WaiterResponse<GetFunctionResponse> waiterResponse = waiter.waitUntilFunctionExists(getFunctionRequest);
waiterResponse.matched().response().ifPresent(System.out::println);
System.out.println("The function ARN is " + functionResponse.functionArn());
} catch(LambdaException | FileNotFoundException e) {
System.err.println(e.getMessage());
System.exit(1);
}
}
- For API details, see CreateFunction in AWS SDK for Java 2.x API Reference.
SDK for Kotlin
This is prerelease documentation for a feature in preview release. It is subject to change.
To learn how to set up and run this example, see GitHub.
suspend fun createNewFunction(
myFunctionName: String,
s3BucketName: String,
myS3Key: String,
myHandler: String,
myRole: String
): String? {
val functionCode = FunctionCode {
s3Bucket = s3BucketName
s3Key = myS3Key
}
val request = CreateFunctionRequest {
functionName = myFunctionName
code = functionCode
description = "Created by the Lambda Kotlin API"
handler = myHandler
role = myRole
runtime = Runtime.Java8
}
LambdaClient { region = "us-west-2" }.use { awsLambda ->
val functionResponse = awsLambda.createFunction(request)
awsLambda.waitUntilFunctionActive {
functionName = myFunctionName
}
return functionResponse.functionArn
}
}
- For API details, see CreateFunction in AWS SDK for Kotlin API reference.
SDK for Python (Boto3)
To learn how to set up and run this example, see GitHub.
class LambdaWrapper:
def __init__(self, lambda_client, iam_resource):
self.lambda_client = lambda_client
self.iam_resource = iam_resource
def create_function(self, function_name, handler_name, iam_role, deployment_package):
"""
Deploys a Lambda function.
:param function_name: The name of the Lambda function.
:param handler_name: The fully qualified name of the handler function. This
must include the file name and the function name.
:param iam_role: The IAM role to use for the function.
:param deployment_package: The deployment package that contains the function
code in .zip format.
:return: The Amazon Resource Name (ARN) of the newly created function.
"""
try:
response = self.lambda_client.create_function(
FunctionName=function_name,
Description="AWS Lambda doc example",
Runtime='python3.8',
Role=iam_role.arn,
Handler=handler_name,
Code={'ZipFile': deployment_package},
Publish=True)
function_arn = response['FunctionArn']
waiter = self.lambda_client.get_waiter('function_active_v2')
waiter.wait(FunctionName=function_name)
logger.info("Created function '%s' with ARN: '%s'.",
function_name, response['FunctionArn'])
except ClientError:
logger.error("Couldn't create function %s.", function_name)
raise
else:
return function_arn
- For API details, see CreateFunction in AWS SDK for Python (Boto3) API Reference.
For a complete list of AWS SDK developer guides and code examples, see Using Lambda with an AWS SDK. This topic also includes information about getting started and details about previous SDK versions.