
Aws Lambda Java Integration
Bootstrap and optimize Java AWS Lambda functions with Micronaut handlers, DI, Shadow JAR packaging, and deployment notes.
Overview
aws-lambda-java-integration is an agent skill for the Build phase that documents Micronaut Gradle setup, handlers, cold starts, DI, and deployment for Java AWS Lambda.
Install
npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit --skill aws-lambda-java-integrationWhat is this skill?
- Five-part guide: project setup, handler implementation, cold start optimization, dependency injection, deployment config
- Gradle uses Micronaut application plugin, Shadow 8.1.1, Java 21, micronaut-function-aws-api-proxy and custom-runtime art
- AWS Lambda Java Events 3.11.4 and java-core 1.2.3 with optional DynamoDB and S3 SDK v2 dependencies
- JUnit 5 and Micronaut test stack for handler unit tests
- Guide table of contents: 5 sections from project setup through deployment configuration
- Pinned examples: Shadow plugin 8.1.1, aws-lambda-java-events 3.11.4, aws-lambda-java-core 1.2.3, Java 21
Adoption & trust: 968 installs on skills.sh; 271 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need a JVM Lambda on AWS but lack a consolidated Micronaut recipe for handlers, packaging, and startup performance.
Who is it for?
Solo builders creating Micronaut-based Lambda APIs or integrations who want copy-ready Gradle and handler structure.
Skip if: Python or Node Lambdas—or Java teams standardizing on Spring Cloud Function without Micronaut.
When should I use this skill?
You are implementing or optimizing a Java Micronaut function on AWS Lambda.
What do I get? / Deliverables
You get a Java 21 Micronaut Lambda project layout, handler patterns, optimization notes, and deployment configuration aligned with Shadow JAR packaging.
- Micronaut Lambda Gradle project skeleton
- Handler implementation and test layout per guide sections
Recommended Skills
Journey fit
How it compares
Framework-specific Lambda cookbook—not generic SAM/CDK deploy automation.
Common Questions / FAQ
Who is aws-lambda-java-integration for?
Developers shipping serverless Java on AWS who prefer Micronaut DI and the documented Shadow plus micronaut-aws function stack.
When should I use aws-lambda-java-integration?
During Build backend work when scaffolding or hardening a new Micronaut Lambda before ship-phase testing and deploy pipelines.
Is aws-lambda-java-integration safe to install?
It is reference documentation; review the Security Audits panel on this Prism page and lock dependency versions in your own repo.
SKILL.md
READMESKILL.md - Aws Lambda Java Integration
# Micronaut Lambda Reference Complete guide for creating AWS Lambda functions with Micronaut Framework. ## Table of Contents 1. [Project Setup](#project-setup) 2. [Handler Implementation](#handler-implementation) 3. [Cold Start Optimization](#cold-start-optimization) 4. [Dependency Injection](#dependency-injection) 5. [Deployment Configuration](#deployment-configuration) --- ## Project Setup ### Gradle Configuration ```groovy plugins { id("com.github.johnrengelman.shadow") version "8.1.1" id("io.micronaut.application") version "4.7.6" } version = "1.0.0" group = "com.example" repositories { mavenCentral() } dependencies { // Micronaut Lambda implementation("io.micronaut.aws:micronaut-function-aws-api-proxy") implementation("io.micronaut.aws:micronaut-function-aws-custom-runtime") // AWS Lambda Events implementation("com.amazonaws:aws-lambda-java-events:3.11.4") implementation("com.amazonaws:aws-lambda-java-core:1.2.3") // AWS SDK (if needed) implementation("software.amazon.awssdk:dynamodb") implementation("software.amazon.awssdk:s3") // Testing testImplementation("io.micronaut.test:micronaut-test-junit5") testImplementation("org.junit.jupiter:junit-jupiter") testImplementation("org.mockito:mockito-core") } application { mainClass.set("com.example.Application") } java { sourceCompatibility = JavaVersion.toVersion("21") targetCompatibility = JavaVersion.toVersion("21") } micronaut { runtime("lambda") testRuntime("junit5") processing { incremental(true) annotations("com.example.*") } aot { optimizeClassLoading(true) convertYamlToJava(true) precomputeOperations(true) } } tasks.named("shadowJar") { archiveClassifier.set("") mergeServiceFiles() } ``` ### Maven Configuration ```xml <project> <parent> <groupId>io.micronaut</groupId> <artifactId>micronaut-parent</artifactId> <version>4.7.6</version> </parent> <groupId>com.example</groupId> <artifactId>my-micronaut-lambda</artifactId> <version>1.0.0</version> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <micronaut.version>4.7.6</micronaut.version> </properties> <dependencies> <dependency> <groupId>io.micronaut.aws</groupId> <artifactId>micronaut-function-aws-api-proxy</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-events</artifactId> <version>3.11.4</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>io.micronaut.maven</groupId> <artifactId>micronaut-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> </plugin> </plugins> </build> </project> ``` ### Project Structure ``` src/ ├── main/ │ ├── java/ │ │ └── com/example/ │ │ ├── Application.java │ │ ├── Handler.java │ │ ├── service/ │ │ │ ├── UserService.java │ │ │ └── DynamoDbUserService.java │ │ └── repository/ │ │ └── UserRepository.java │ └── resources/ │ ├── application.yml │ └── logback.xml └── test/ └── java/ └── com/example/ └── HandlerTest.java ``` --- ## Handler Implementation ### Basic API Gateway Handler ```java package com.example; import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent; import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent; import io.micronaut.function.aws.MicronautRequestHandler; import jakarta.inject.Inject; public class Handler extends MicronautR