MCPcopy Index your code
hub / github.com/ballerina-platform/module-ballerinax-aws.lambda

github.com/ballerina-platform/module-ballerinax-aws.lambda @v3.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.3.0 ↗ · + Follow
139 symbols 305 edges 30 files 35 documented · 25% updated 12d agov3.3.0 · 2025-02-20★ 109
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Ballerina AWS Lambda Extension

Annotation based AWS Lambda extension implementation for Ballerina.

Daily build Build master branch License codecov

Supported Annotations:

@lambda:Function

  • Supported with Ballerina package level functions

Annotation Usage Sample:

import ballerinax/aws.lambda;
import ballerina/uuid;
import ballerina/io;

// The `@lambda:Function` annotation marks a function to
// generate an AWS Lambda function
@lambda:Function
public function echo(lambda:Context ctx, json input) returns json {
   return input;
}

@lambda:Function
public function uuid(lambda:Context ctx, json input) returns json {
   return uuid:createType1AsString();
}

// The `lambda:Context` object contains request execution
// context information
@lambda:Function
public function ctxinfo(lambda: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;
}

@lambda:Function
public function notifySQS(lambda:Context ctx, 
                          lambda:SQSEvent event) returns json {
    return event.Records[0].body;
}

@lambda:Function
public function notifyS3(lambda:Context ctx, 
                         lambda:S3Event event) returns json {
    return event.Records[0].s3.'object.key;
}

@lambda:Function
public function notifyDynamoDB(lambda:Context ctx, 
                               lambda:DynamoDBEvent event) returns json {
    return event.Records[0].dynamodb.Keys.toString();
}

@lambda:Function
public function notifySES(lambda:Context ctx, 
                          lambda:SESEvent event) returns json {
    return event.Records[0].ses.mail.commonHeaders.subject;
}

@lambda:Function
public function apigwRequest(lambda:Context ctx, 
                             lambda:APIGatewayProxyRequest request) {
    io:println("Path: ", request.path);
}

The output of the bal build is as follows:

$ bal build functions.bal 
Compiling source
    functions.bal

Generating executables
    functions.jar
    @aws.lambda:Function: echo, uuid, ctxinfo, notifySQS, notifyS3, notifyDynamoDB, notifySES, apigwRequest

    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>:367134611783:layer:ballerina-jre21:1

    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

Core symbols most depended-on inside this repo

generateMinutiaeListWithWhitespace
called by 12
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaUtils.java
getDiagnostic
called by 7
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaUtils.java
isAwsLambdaModule
called by 5
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaUtils.java
generateMinutiaeListWithNewline
called by 4
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaUtils.java
getOriginalFunction
called by 3
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/FunctionDeploymentContext.java
getGeneratedFunction
called by 2
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/FunctionDeploymentContext.java
getTypeNameNode
called by 2
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaUtils.java
addStatementToFunctionBody
called by 2
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaUtils.java

Shape

Method 109
Class 30

Languages

Java100%

Modules by API surface

compiler-plugin-tests/src/test/java/org/ballerinax/aws/lambda/generator/test/utils/ParserTestUtils.java21 symbols
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaUtils.java18 symbols
compiler-plugin-tests/src/test/java/org/ballerinax/aws/lambda/generator/test/utils/SyntaxTreeJSONGenerator.java10 symbols
compiler-plugin-tests/src/test/java/org/ballerinax/aws/lambda/generator/test/utils/ProcessOutput.java8 symbols
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/tasks/AWSLambdaCodegenTask.java7 symbols
compiler-plugin-tests/src/test/java/org/ballerinax/aws/lambda/generator/test/utils/TestUtils.java7 symbols
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/tasks/LambdaCodeGeneratedTask.java6 symbols
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaFunctionVisitor.java6 symbols
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/validators/AWSLambdaCodeAnalyzerTask.java4 symbols
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/LambdaFunctionHolder.java4 symbols
compiler-plugin/src/main/java/org/ballerinax/aws/lambda/generator/FunctionDeploymentContext.java4 symbols
compiler-plugin-tests/src/test/java/org/ballerinax/aws/lambda/generator/test/ProjectValidationTest.java4 symbols

For agents

$ claude mcp add module-ballerinax-aws.lambda \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page