Skip to content

Commit ba04ac6

Browse files
committed
[WIP]
1 parent 18c81f5 commit ba04ac6

File tree

36 files changed

+1245
-488
lines changed

36 files changed

+1245
-488
lines changed

labs/.gitkeep

Whitespace-only changes.

labs/lab-1-replatform/dagger2-lambda/src/main/java/com/aws/samples/petclinic/dagger/PetModule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ public DynamoDBMapper provideDynamoDBMapper(AmazonDynamoDB amazonDynamoDB) {
8989
@Singleton
9090
public AmazonS3 provideAmazonS3(@Nullable TracingHandler tracingHandler, boolean enableXRay, AWSCredentialsProvider credentialsProvider, Regions regions) {
9191
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard()
92-
.withCredentials(credentialsProvider)
93-
.withRegion(regions);
92+
.withCredentials(credentialsProvider)
93+
.withRegion(regions);
9494

9595
if (enableXRay) {
9696
builder.withRequestHandlers(tracingHandler);

labs/lab-1-replatform/dagger2-lambda/template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Resources:
1313
Handler: com.aws.samples.petclinic.CreatePetLambdaHandler::handleRequest
1414
Runtime: java8
1515
CodeUri: target/app.jar
16-
MemorySize: 2048
16+
MemorySize: 1024
1717
Environment:
1818
Variables:
1919
TABLE_NAME: !ImportValue PetsTable
Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,93 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3-
xmlns="http://maven.apache.org/POM/4.0.0"
4-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
5-
<modelVersion>4.0.0</modelVersion>
3+
xmlns="http://maven.apache.org/POM/4.0.0"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
66

7-
<parent>
8-
<groupId>com.aws.samples.java.lambda.labs</groupId>
9-
<artifactId>lab-1-replatform</artifactId>
10-
<version>1.0.0-SNAPSHOT</version>
11-
</parent>
7+
<parent>
8+
<groupId>com.aws.samples.java.lambda.labs</groupId>
9+
<artifactId>lab-1-replatform</artifactId>
10+
<version>1.0.0-SNAPSHOT</version>
11+
</parent>
1212

13-
<groupId>com.aws.samples.java.lambda.labs.lab-1-replatform</groupId>
14-
<artifactId>no-di-framework-lambda</artifactId>
15-
<packaging>jar</packaging>
13+
<groupId>com.aws.samples.java.lambda.labs.lab-1-replatform</groupId>
14+
<artifactId>no-di-framework-lambda</artifactId>
15+
<packaging>jar</packaging>
1616

17-
<dependencies>
18-
<dependency>
19-
<groupId>com.amazonaws</groupId>
20-
<artifactId>aws-java-sdk-dynamodb</artifactId>
21-
<version>${aws.java.sdkv1.version}</version>
22-
</dependency>
17+
<dependencies>
18+
<dependency>
19+
<groupId>com.amazonaws</groupId>
20+
<artifactId>aws-java-sdk-dynamodb</artifactId>
21+
<version>${aws.java.sdkv1.version}</version>
22+
</dependency>
2323

24-
<dependency>
25-
<groupId>com.amazonaws</groupId>
26-
<artifactId>aws-java-sdk-s3</artifactId>
27-
<version>${aws.java.sdkv1.version}</version>
28-
</dependency>
24+
<dependency>
25+
<groupId>com.amazonaws</groupId>
26+
<artifactId>aws-java-sdk-s3</artifactId>
27+
<version>${aws.java.sdkv1.version}</version>
28+
</dependency>
2929

30-
<dependency>
31-
<groupId>com.amazonaws</groupId>
32-
<artifactId>aws-lambda-java-core</artifactId>
33-
<version>${com.amazonaws.aws-lambda-java-core.version}</version>
34-
</dependency>
30+
<dependency>
31+
<groupId>com.amazonaws</groupId>
32+
<artifactId>aws-lambda-java-core</artifactId>
33+
<version>${com.amazonaws.aws-lambda-java-core.version}</version>
34+
</dependency>
3535

36-
<dependency>
37-
<groupId>com.amazonaws</groupId>
38-
<artifactId>aws-lambda-java-events</artifactId>
39-
<version>${com.amazonaws.aws-lambda-java-events.version}</version>
40-
</dependency>
36+
<dependency>
37+
<groupId>com.amazonaws</groupId>
38+
<artifactId>aws-lambda-java-events</artifactId>
39+
<version>${com.amazonaws.aws-lambda-java-events.version}</version>
40+
</dependency>
4141

42-
<dependency>
43-
<groupId>org.slf4j</groupId>
44-
<artifactId>slf4j-simple</artifactId>
45-
<version>${org.slf4j.version}</version>
46-
</dependency>
42+
<dependency>
43+
<groupId>org.slf4j</groupId>
44+
<artifactId>slf4j-simple</artifactId>
45+
<version>${org.slf4j.version}</version>
46+
</dependency>
4747

48-
<dependency>
49-
<groupId>com.amazonaws</groupId>
50-
<artifactId>aws-xray-recorder-sdk-core</artifactId>
51-
<version>${com.amazonaws.aws-xray-recorder-sdk.version}</version>
52-
</dependency>
48+
<dependency>
49+
<groupId>com.amazonaws</groupId>
50+
<artifactId>aws-xray-recorder-sdk-core</artifactId>
51+
<version>${com.amazonaws.aws-xray-recorder-sdk.version}</version>
52+
</dependency>
5353

54-
<dependency>
55-
<groupId>com.amazonaws</groupId>
56-
<artifactId>aws-xray-recorder-sdk-aws-sdk</artifactId>
57-
<version>${com.amazonaws.aws-xray-recorder-sdk.version}</version>
58-
</dependency>
59-
</dependencies>
54+
<dependency>
55+
<groupId>com.amazonaws</groupId>
56+
<artifactId>aws-xray-recorder-sdk-aws-sdk</artifactId>
57+
<version>${com.amazonaws.aws-xray-recorder-sdk.version}</version>
58+
</dependency>
59+
</dependencies>
6060

61-
<build>
62-
<finalName>${project.artifactId}</finalName>
61+
<build>
62+
<finalName>${project.artifactId}</finalName>
6363

64-
<plugins>
65-
<plugin>
66-
<groupId>org.apache.maven.plugins</groupId>
67-
<artifactId>maven-compiler-plugin</artifactId>
68-
<version>3.8.1</version>
69-
</plugin>
64+
<plugins>
65+
<plugin>
66+
<groupId>org.apache.maven.plugins</groupId>
67+
<artifactId>maven-compiler-plugin</artifactId>
68+
<version>3.8.1</version>
69+
</plugin>
7070

71-
<plugin>
72-
<artifactId>maven-assembly-plugin</artifactId>
73-
<version>3.1.0</version>
74-
<configuration>
75-
<finalName>app</finalName>
76-
<appendAssemblyId>false</appendAssemblyId>
77-
<descriptorRefs>
78-
<descriptorRef>jar-with-dependencies</descriptorRef>
79-
</descriptorRefs>
80-
</configuration>
81-
<executions>
82-
<execution>
83-
<id>make-assembly</id>
84-
<phase>package</phase>
85-
<goals>
86-
<goal>single</goal>
87-
</goals>
88-
</execution>
89-
</executions>
90-
</plugin>
91-
</plugins>
92-
</build>
71+
<plugin>
72+
<artifactId>maven-assembly-plugin</artifactId>
73+
<version>3.1.0</version>
74+
<configuration>
75+
<finalName>app</finalName>
76+
<appendAssemblyId>false</appendAssemblyId>
77+
<descriptorRefs>
78+
<descriptorRef>jar-with-dependencies</descriptorRef>
79+
</descriptorRefs>
80+
</configuration>
81+
<executions>
82+
<execution>
83+
<id>make-assembly</id>
84+
<phase>package</phase>
85+
<goals>
86+
<goal>single</goal>
87+
</goals>
88+
</execution>
89+
</executions>
90+
</plugin>
91+
</plugins>
92+
</build>
9393
</project>

labs/lab-1-replatform/no-di-framework-lambda/src/main/java/com/aws/samples/petclinic/CreatePetLambdaHandler.java

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,41 @@ public class CreatePetLambdaHandler implements RequestHandler<APIGatewayV2ProxyR
2828
public CreatePetLambdaHandler() {
2929
objectMapper = new ObjectMapper();
3030

31+
boolean enableXRay = System.getenv("AWS_XRAY_DAEMON_ADDRESS") != null;
32+
33+
String table = System.getenv("TABLE_NAME");
34+
35+
String bucket = System.getenv("BUCKET_NAME");
36+
3137
Regions regions = Regions.fromName(System.getenv("AWS_REGION"));
3238

3339
AWSCredentialsProvider credentialsProvider = DefaultAWSCredentialsProviderChain.getInstance();
3440

35-
AmazonDynamoDB amazonDynamoDB = AmazonDynamoDBClientBuilder.standard()
36-
.withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder()))
41+
AmazonDynamoDBClientBuilder dynamoDBClientBuilder = AmazonDynamoDBClientBuilder.standard()
3742
.withCredentials(credentialsProvider)
38-
.withRegion(regions)
39-
.build();
43+
.withRegion(regions);
44+
45+
if (enableXRay) {
46+
dynamoDBClientBuilder.withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder()));
47+
}
48+
49+
AmazonDynamoDB amazonDynamoDB = dynamoDBClientBuilder.build();
4050

4151
DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(amazonDynamoDB);
4252

4353
PetRepository repository = new PetRepository(dynamoDBMapper);
4454

45-
AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard()
46-
.withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder()))
55+
AmazonS3ClientBuilder s3ClientBuilder = AmazonS3ClientBuilder.standard()
4756
.withCredentials(credentialsProvider)
48-
.withRegion(regions)
49-
.build();
57+
.withRegion(regions);
58+
59+
if (enableXRay) {
60+
s3ClientBuilder.withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder()));
61+
}
62+
63+
AmazonS3 amazonS3 = s3ClientBuilder.build();
5064

51-
MedicalRecordStore medicalRecordStore = new MedicalRecordStore(amazonS3);
65+
MedicalRecordStore medicalRecordStore = new MedicalRecordStore(amazonS3, bucket);
5266

5367
service = new PetService(repository, medicalRecordStore);
5468
}
@@ -59,20 +73,16 @@ public APIGatewayV2ProxyResponseEvent handleRequest(APIGatewayV2ProxyRequestEven
5973
response.setStatusCode(200);
6074

6175
try {
62-
AWSXRay.beginSubsegment("deserializePetRecord");
6376
PetRecord petRecord = objectMapper.readValue(input.getBody(), PetRecord.class);
64-
AWSXRay.endSubsegment();
6577

6678
petRecord = service.addPet(petRecord);
6779

68-
AWSXRay.beginSubsegment("serializePetRecord");
6980
response.setBody(objectMapper.writeValueAsString(petRecord));
70-
AWSXRay.endSubsegment();
7181
} catch (Exception e) {
7282
response.setStatusCode(500);
7383
e.printStackTrace();
7484
}
7585

7686
return response;
7787
}
78-
}
88+
}

labs/lab-1-replatform/no-di-framework-lambda/src/main/java/com/aws/samples/petclinic/pet/MedicalRecordStore.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,22 @@
99
public class MedicalRecordStore {
1010

1111
private AmazonS3 amazonS3;
12+
private String petsBucketName;
1213

13-
public MedicalRecordStore(AmazonS3 amazonS3) {
14+
public MedicalRecordStore(AmazonS3 amazonS3, String petsBucketName) {
1415
this.amazonS3 = amazonS3;
16+
this.petsBucketName = petsBucketName;
1517
}
1618

1719
public MedicalRecord save(MedicalRecord medicalRecord) {
1820
medicalRecord.setId(UUID.randomUUID().toString());
1921

2022
amazonS3.putObject(new PutObjectRequest(
21-
"cmr-lambda",
23+
petsBucketName,
2224
"medical-record/" + medicalRecord.getId(),
2325
new ByteArrayInputStream(medicalRecord.getRecord().getBytes()),
2426
null));
2527

2628
return medicalRecord;
2729
}
28-
}
30+
}

labs/lab-1-replatform/no-di-framework-lambda/template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Resources:
1313
Handler: com.aws.samples.petclinic.CreatePetLambdaHandler::handleRequest
1414
Runtime: java8
1515
CodeUri: target/app.jar
16-
MemorySize: 2048
16+
MemorySize: 1024
1717
Environment:
1818
Variables:
1919
TABLE_NAME: !ImportValue PetsTable

0 commit comments

Comments
 (0)