Module :
awslambda
Version : 0.0.0
Module Overview
This module offers the capabilities of creating AWS Lambda functions using ballerina.
- For information on the operations, which you can perform with this module, see Objects.
- For information on the deployment, see the AWS Lambda Deployment Guide.
- For examples on the usage of the operations, see the AWS Lambda Deployment Example.
Annotation Usage Sample:
import ballerinax/awslambda;
import ballerina/system;
import ballerina/io;
// The `@awslambda:Function` annotation marks a function to
// generate an AWS Lambda function
@awslambda:Function
public function echo(awslambda:Context ctx, json input) returns json {
return input;
}
@awslambda:Function
public function uuid(awslambda:Context ctx, json input) returns json {
return system:uuid();
}
// The `awslambda:Context` object contains request execution
// context information
@awslambda:Function
public function ctxinfo(awslambda:Context ctx, json input) returns json|error {
json result = { RequestID: ctx.getRequestId(),
DeadlineMS: ctx.getDeadlineMs(),
InvokedFunctionArn: ctx.getInvokedFunctionArn(),
TraceID: ctx.getTraceId(),
RemainingExecTime: ctx.getRemainingExecutionTime() };
return result;
}
@awslambda:Function
public function notifySQS(awslambda:Context ctx,
awslambda:SQSEvent event) returns json {
return event.Records[0].body;
}
@awslambda:Function
public function notifyS3(awslambda:Context ctx,
awslambda:S3Event event) returns json {
return event.Records[0].s3.'object.key;
}
@awslambda:Function
public function notifyDynamoDB(awslambda:Context ctx,
awslambda:DynamoDBEvent event) returns json {
return event.Records[0].dynamodb.Keys.toString();
}
@awslambda:Function
public function notifySES(awslambda:Context ctx,
awslambda:SESEvent event) returns json {
return event.Records[0].ses.mail.commonHeaders.subject;
}
@awslambda:Function
public function apigwRequest(awslambda:Context ctx,
awslambda:APIGatewayProxyRequest request) {
io:println("Path: ", request.path);
}
The output of the Ballerina build is as follows:
$ ballerina build functions.bal
Compiling source
functions.bal
Generating executable
functions.jar
@awslambda:Function: echo, uuid, ctxinfo, notifySQS, notifyS3
Run the following command to deploy each Ballerina AWS Lambda function:
aws lambda create-function --function-name $FUNCTION_NAME --zip-file fileb://aws-ballerina-lambda-functions.zip --handler functions.$FUNCTION_NAME --runtime provided --role $LAMBDA_ROLE_ARN --layers arn:aws:lambda:$REGION_ID:141896495686:layer:ballerina:2 --memory-size 512 --timeout 10
Run the following command to re-deploy an updated Ballerina AWS Lambda function:
aws lambda update-function-code --function-name $FUNCTION_NAME --zip-file fileb://aws-ballerina-lambda-functions.zip
Context |
Object to represent an AWS Lambda function execution context. |
__process | |
__register |
Function |
@awslambda:Function annotation |