Skip to content

Commit 1d859db

Browse files
committed
[1.0.0-SNAPSHOT]
Micronaut examples updated Micronaut packages renamed
1 parent c273d27 commit 1d859db

File tree

97 files changed

+404
-267
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+404
-267
lines changed

build.gradle

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,11 @@ buildscript {
66

77
plugins {
88
id "jacoco"
9-
id "org.sonarqube" version "4.2.1.3168"
109
}
1110

1211
group = groupId
1312
version = artifactVersion
1413

15-
sonarqube {
16-
properties {
17-
property "sonar.host.url", "https://sonarcloud.io"
18-
property "sonar.organization", "goodforgod"
19-
property "sonar.projectKey", "GoodforGod_$artifactRootId"
20-
property "sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml"
21-
}
22-
}
23-
2414
subprojects {
2515
apply plugin: "com.diffplug.spotless"
2616

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Micronaut AWSLambda DynamoDB
2+
3+
Micronaut application lambda for DynamoDB.
4+
5+
## Build
6+
7+
Building Micronaut AWSLambda native executable is quite easy and require 3 steps only:
8+
9+
1) Build JAR:
10+
```shell
11+
./gradlew micronaut-application-dynamodb:shadowJar
12+
```
13+
14+
2) Build native executable via Docker:
15+
```shell
16+
docker build -t micronaut-application-dynamodb .
17+
```
18+
19+
3) Extract native executable from container:
20+
```shell
21+
docker run --rm --entrypoint cat micronaut-application-dynamodb /home/application/function.zip > build/function.zip
22+
```
23+
24+
## SAM
25+
26+
You can run AWS emulator (SAM) locally to emulate and test deployment like it is AWS Lambda Cloud.
27+
28+
```shell
29+
sam local start-api -t sam.yaml -p 3000
30+
```
31+
32+
## Event Example
33+
34+
Example of event to send to lambda:
35+
```json
36+
{
37+
"body": "{\"name\":\"Steeven King\"}",
38+
"httpMethod": "POST",
39+
"isBase64Encoded": false,
40+
"path": "/"
41+
}
42+
```
43+
44+
## More
45+
- https://docs.micronaut.io/latest/guide/#serverlessFunctions
46+
- https://micronaut-projects.github.io/micronaut-aws/latest/guide/#lambda
47+
- https://guides.micronaut.io/latest/mn-serverless-function-aws-lambda-gradle-java.html

micronaut-gradle-application-dynamodb/build.gradle renamed to micronaut-application-dynamodb/build.gradle

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ micronaut {
2626
}
2727

2828
configurations {
29-
all {
30-
resolutionStrategy {
31-
cacheChangingModulesFor 0, "seconds" // check for updates every build
32-
}
33-
}
3429
awssdkBom
3530
compileOnly.extendsFrom(awssdkBom)
3631
implementation.extendsFrom(awssdkBom)
@@ -39,17 +34,21 @@ configurations {
3934
}
4035

4136
dependencies {
42-
awssdkBom enforcedPlatform("software.amazon.awssdk:bom:2.20.131")
37+
awssdkBom enforcedPlatform("software.amazon.awssdk:bom:2.20.135")
4338

39+
annotationProcessor "io.micronaut.validation:micronaut-validation-processor"
4440
annotationProcessor "io.micronaut:micronaut-inject-java"
4541
annotationProcessor "io.micronaut:micronaut-graal"
4642
compileOnly "io.micronaut:micronaut-inject-java"
4743
compileOnly "org.graalvm.nativeimage:svm"
4844

4945
implementation "io.goodforgod:slf4j-simple-logger:2.0.0"
46+
implementation "io.micronaut.validation:micronaut-validation"
47+
implementation "io.micronaut:micronaut-jackson-databind"
5048
implementation "io.micronaut:micronaut-http-client"
5149
implementation "io.micronaut.aws:micronaut-function-aws"
5250
implementation "io.micronaut.aws:micronaut-function-aws-api-proxy"
51+
implementation "io.micronaut.aws:micronaut-function-aws-custom-runtime"
5352

5453
implementation "commons-logging:commons-logging:1.2"
5554
implementation "software.amazon.awssdk:apache-client"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
3+
docker build -t micronaut-application-dynamodb .
4+
docker run --rm --entrypoint cat micronaut-application-dynamodb /home/application/function.zip > build/function.zip

micronaut-gradle-function-http/sam.yaml renamed to micronaut-application-dynamodb/sam.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ Resources:
3131
Description: URL for application
3232
Value: !Sub 'https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/'
3333
Export:
34-
Name: micronaut-gradle-function-http
34+
Name: micronaut-application-dynamodb
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package io.goodforgod.micronaut;
22

33
import io.micronaut.core.annotation.Introspected;
4+
import io.micronaut.http.annotation.Body;
45
import io.micronaut.http.annotation.Controller;
56
import io.micronaut.http.annotation.Post;
7+
import jakarta.validation.Valid;
68
import java.util.Map;
79
import java.util.UUID;
8-
import javax.validation.Valid;
910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
1112
import software.amazon.awssdk.http.apache.ApacheHttpClient;
@@ -31,7 +32,7 @@ public class LambdaController {
3132
.build();
3233

3334
@Post
34-
public Response getResponse(@Valid Request request) {
35+
public Response getResponse(@Valid @Body Request request) {
3536
logger.info("Processing User with name: {}", request.name());
3637

3738
final String id = UUID.randomUUID().toString();
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package io.goodforgod.micronaut;
22

3+
import io.micronaut.core.annotation.Introspected;
34
import io.micronaut.core.annotation.TypeHint;
45

56
/**
67
* @author Anton Kurako (GoodforGod)
78
* @since 21.3.2021
89
*/
910
@TypeHint(value = { Request.class }, accessType = { TypeHint.AccessType.ALL_PUBLIC })
11+
@Introspected
1012
public record Request(String name) {}

0 commit comments

Comments
 (0)