Skip to content

Commit e70479b

Browse files
author
AncaGhenade
committed
add terraform for creating aws/localstack resources
1 parent 94ae3b4 commit e70479b

File tree

11 files changed

+313
-250
lines changed

11 files changed

+313
-250
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,9 @@ src/main/shipment-list-frontend/.env.production.local
5555
src/main/shipment-list-frontend/npm-debug.log*
5656
src/main/shipment-list-frontend/yarn-debug.log*
5757
src/main/shipment-list-frontend/yarn-error.log*
58+
59+
# terraform
60+
61+
setup/terraform/terraform.tfstate
62+
setup/terraform/.terraform.lock.hcl
63+
setup/terraform/terraform.tfstate.backup

pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,6 @@
5050
<artifactId>aws-java-sdk-dynamodb</artifactId>
5151
<version>1.12.383</version>
5252
</dependency>
53-
<dependency>
54-
<groupId>com.github.dynamobee</groupId>
55-
<artifactId>dynamobee</artifactId>
56-
<version>0.6</version>
57-
</dependency>
5853
<dependency>
5954
<groupId>org.springframework.boot</groupId>
6055
<artifactId>spring-boot-autoconfigure</artifactId>

scripts/new-bucket-local.sh

Lines changed: 0 additions & 8 deletions
This file was deleted.

scripts/new-bucket.sh

Lines changed: 0 additions & 16 deletions
This file was deleted.

setup/terraform/data.json

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
{
2+
"shipment1": {
3+
"shipmentId": {
4+
"S": "dc3b6668-45ba-4c10-9860-95bbffaebfc1"
5+
},
6+
"recipient": {
7+
"M": {
8+
"name": {
9+
"S": "Harry Potter"
10+
},
11+
"address": {
12+
"M": {
13+
"postalCode": {
14+
"S": "LNDNGB"
15+
},
16+
"street": {
17+
"S": "Privet Drive"
18+
},
19+
"number": {
20+
"S": "4"
21+
},
22+
"city": {
23+
"S": "Little Whinging"
24+
},
25+
"additionalInfo": {
26+
"S": ""
27+
}
28+
}
29+
}
30+
}
31+
},
32+
"sender": {
33+
"M": {
34+
"name": {
35+
"S": "Hermione Granger"
36+
},
37+
"address": {
38+
"M": {
39+
"postalCode": {
40+
"S": "OXFGB"
41+
},
42+
"street": {
43+
"S": "Grimmauld Place"
44+
},
45+
"number": {
46+
"S": "12"
47+
},
48+
"city": {
49+
"S": "London"
50+
},
51+
"additionalInfo": {
52+
"S": ""
53+
}
54+
}
55+
}
56+
}
57+
},
58+
"weight": {
59+
"N": "1.0"
60+
},
61+
"imageLink": {
62+
"NULL": true
63+
}
64+
},
65+
"shipment2": {
66+
"shipmentId": {
67+
"S": "f7fc2d00-5cd9-4749-b5ac-10a6f7ac0310"
68+
},
69+
"recipient": {
70+
"M": {
71+
"name": {
72+
"S": "Walter White"
73+
},
74+
"address": {
75+
"M": {
76+
"postalCode": {
77+
"S": "ALBQNM"
78+
},
79+
"street": {
80+
"S": "Negra Arroyo Lane"
81+
},
82+
"number": {
83+
"S": "308"
84+
},
85+
"city": {
86+
"S": "Albuquerque"
87+
},
88+
"additionalInfo": {
89+
"S": "RV storage"
90+
}
91+
}
92+
}
93+
}
94+
},
95+
"sender": {
96+
"M": {
97+
"name": {
98+
"S": "Tony Stark"
99+
},
100+
"address": {
101+
"M": {
102+
"postalCode": {
103+
"S": "NYCNY"
104+
},
105+
"street": {
106+
"S": "Avenue of the Americas"
107+
},
108+
"number": {
109+
"S": "64"
110+
},
111+
"city": {
112+
"S": "New York City"
113+
},
114+
"additionalInfo": {
115+
"S": "Stark Tower"
116+
}
117+
}
118+
}
119+
}
120+
},
121+
"weight": {
122+
"N": "0.7"
123+
},
124+
"imageLink": {
125+
"NULL": true
126+
}
127+
},
128+
"shipment3": {
129+
"shipmentId": {
130+
"S": "3317ac4f-1f9b-4bab-a974-4aadf79d7da5"
131+
},
132+
"recipient": {
133+
"M": {
134+
"name": {
135+
"S": "Buddy The Elf"
136+
},
137+
"address": {
138+
"M": {
139+
"postalCode": {
140+
"S": "938746"
141+
},
142+
"street": {
143+
"S": "Candy Cane Lane"
144+
},
145+
"number": {
146+
"S": "1"
147+
},
148+
"city": {
149+
"S": "North Pole"
150+
},
151+
"additionalInfo": {
152+
"S": "Santa's Workshop"
153+
}
154+
}
155+
}
156+
}
157+
},
158+
"sender": {
159+
"M": {
160+
"name": {
161+
"S": "The Grinch"
162+
},
163+
"address": {
164+
"M": {
165+
"postalCode": {
166+
"S": "69869"
167+
},
168+
"street": {
169+
"S": "Mount Crumpit"
170+
},
171+
"number": {
172+
"S": "666"
173+
},
174+
"city": {
175+
"S": "Whoville"
176+
},
177+
"additionalInfo": {
178+
"S": "Cave"
179+
}
180+
}
181+
}
182+
}
183+
},
184+
"weight": {
185+
"N": "9.0"
186+
},
187+
"imageLink": {
188+
"NULL": true
189+
}
190+
},
191+
"shipment4": {
192+
"shipmentId": {
193+
"S": "26c09286-a00c-11ed-a8fc-0242ac120002"
194+
},
195+
"recipient": {
196+
"M": {
197+
"name": {
198+
"S": "Home Sweet Home"
199+
},
200+
"address": {
201+
"M": {
202+
"postalCode": {
203+
"S": "98653"
204+
},
205+
"street": {
206+
"S": "47th Street"
207+
},
208+
"number": {
209+
"S": "4"
210+
},
211+
"city": {
212+
"S": "Springfield"
213+
},
214+
"additionalInfo": {
215+
"S": ""
216+
}
217+
}
218+
}
219+
}
220+
},
221+
"sender": {
222+
"M": {
223+
"name": {
224+
"S": "Warehouse of Unicorns"
225+
},
226+
"address": {
227+
"M": {
228+
"postalCode": {
229+
"S": "98653"
230+
},
231+
"street": {
232+
"S": "47th Street"
233+
},
234+
"number": {
235+
"S": "4"
236+
},
237+
"city": {
238+
"S": "Townsville"
239+
},
240+
"additionalInfo": {
241+
"S": ""
242+
}
243+
}
244+
}
245+
}
246+
},
247+
"weight": {
248+
"N": "2.3"
249+
},
250+
"imageLink": {
251+
"NULL": true
252+
}
253+
}
254+
}

setup/terraform/locals.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
locals {
2+
json_data = file("./data.json")
3+
tf_data = jsondecode(local.json_data)
4+
}

setup/terraform/main.tf

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
terraform {
2+
required_providers {
3+
aws = {
4+
source = "hashicorp/aws"
5+
version = ">= 4.52.0"
6+
}
7+
}
8+
}
9+
provider "aws" {
10+
region = "eu-central-1"
11+
}
12+
13+
14+
resource "aws_s3_bucket" "shipment-list-demo-bucket" {
15+
bucket = "shipment-list-demo-bucket"
16+
}
17+
18+
19+
resource "aws_s3_bucket_acl" "shipment-list-demo-bucket-acl" {
20+
bucket = aws_s3_bucket.shipment-list-demo-bucket.id
21+
acl = "private"
22+
}
23+
24+
resource "aws_dynamodb_table" "shipment" {
25+
name = "shipment"
26+
read_capacity = 10
27+
write_capacity = 5
28+
29+
attribute {
30+
name = "shipmentId"
31+
type = "S"
32+
}
33+
hash_key = "shipmentId"
34+
server_side_encryption {
35+
enabled = true
36+
}
37+
38+
stream_enabled = true
39+
stream_view_type = "NEW_AND_OLD_IMAGES"
40+
}
41+
42+
43+
resource "aws_dynamodb_table_item" "shipment" {
44+
for_each = local.tf_data
45+
table_name = aws_dynamodb_table.shipment.name
46+
hash_key = "shipmentId"
47+
item = jsonencode(each.value)
48+
}
49+

0 commit comments

Comments
 (0)