Skip to content

Commit b25352a

Browse files
Rodrigo Dos SantosRodrigo Dos Santos
authored andcommitted
Added AWS ECS Configuration - build go-service
1 parent 4cb289e commit b25352a

File tree

9 files changed

+484
-36
lines changed

9 files changed

+484
-36
lines changed
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
{
2+
"taskDefinitionArn": "arn:aws:ecs:eu-west-1:525674930738:task-definition/go-service:1",
3+
"containerDefinitions": [
4+
{
5+
"name": "go-service",
6+
"image": "525674930738.dkr.ecr.eu-west-1.amazonaws.com/go-service:latest",
7+
"cpu": 0,
8+
"portMappings": [
9+
{
10+
"name": "go-service-8082-tcp",
11+
"containerPort": 8082,
12+
"hostPort": 8082,
13+
"protocol": "tcp",
14+
"appProtocol": "http"
15+
}
16+
],
17+
"essential": true,
18+
"environment": [
19+
{
20+
"name": "SPRING_MAIN_ALLOW_CIRCULAR_REFERENCES",
21+
"value": "true"
22+
},
23+
{
24+
"name": "SPRING_DATA_MONGODB_URI",
25+
"value": "SPRING_DATA_MONGODB_URI_REPLACE"
26+
},
27+
{
28+
"name": "OPENTRACING_JAEGER_ENABLED",
29+
"value": "false"
30+
},
31+
{
32+
"name": "COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE",
33+
"value": "COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE_REPLACE"
34+
},
35+
{
36+
"name": "SPRING_PROFILES_ACTIVE",
37+
"value": "dev"
38+
},
39+
{
40+
"name": "MANAGEMENT_ENDPOINTS_WEB_CORS_ALLOW_CREDENTIALS",
41+
"value": "false"
42+
},
43+
{
44+
"name": "SPRING_DATA_MONGODB_DATABASE",
45+
"value": "test"
46+
},
47+
{
48+
"name": "SPRING_CLOUD_KUBERNETES_ENABLED",
49+
"value": "false"
50+
},
51+
{
52+
"name": "SPRING_CLOUD_CONSUL_ENABLED",
53+
"value": "false"
54+
}
55+
],
56+
"environmentFiles": [],
57+
"mountPoints": [],
58+
"volumesFrom": [],
59+
"logConfiguration": {
60+
"logDriver": "awslogs",
61+
"options": {
62+
"awslogs-create-group": "true",
63+
"awslogs-group": "/ecs/go-service",
64+
"awslogs-region": "eu-west-1",
65+
"awslogs-stream-prefix": "ecs"
66+
}
67+
}
68+
}
69+
],
70+
"family": "go-service",
71+
"executionRoleArn": "arn:aws:iam::525674930738:role/ecsTaskExecutionRole",
72+
"networkMode": "awsvpc",
73+
"revision": 1,
74+
"volumes": [],
75+
"status": "ACTIVE",
76+
"requiresAttributes": [
77+
{
78+
"name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
79+
},
80+
{
81+
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.24"
82+
},
83+
{
84+
"name": "ecs.capability.execution-role-awslogs"
85+
},
86+
{
87+
"name": "com.amazonaws.ecs.capability.ecr-auth"
88+
},
89+
{
90+
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
91+
},
92+
{
93+
"name": "ecs.capability.container-health-check"
94+
},
95+
{
96+
"name": "ecs.capability.execution-role-ecr-pull"
97+
},
98+
{
99+
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
100+
},
101+
{
102+
"name": "ecs.capability.task-eni"
103+
},
104+
{
105+
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.29"
106+
}
107+
],
108+
"placementConstraints": [],
109+
"compatibilities": [
110+
"EC2",
111+
"FARGATE"
112+
],
113+
"requiresCompatibilities": [
114+
"FARGATE"
115+
],
116+
"cpu": "1024",
117+
"memory": "2048",
118+
"runtimePlatform": {
119+
"cpuArchitecture": "X86_64",
120+
"operatingSystemFamily": "LINUX"
121+
},
122+
"registeredAt": "2023-01-22T17:18:22.977Z",
123+
"registeredBy": "arn:aws:iam::525674930738:root",
124+
"tags": [
125+
{
126+
"key": "ecs:taskDefinition:createdFrom",
127+
"value": "ecs-console-v2"
128+
}
129+
]
130+
}

.github/workflows/docker-build-push-image-go-service.yml

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ env:
1717
GKE_CLUSTER: ${{ secrets.GKE_CLUSTER }}
1818
GKE_KEY: ${{ secrets.GKE_KEY }}
1919
IMAGE: go-service
20+
ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY }}
21+
ECS_SERVICE: "go-service"
22+
ECS_CLUSTER: ${{ secrets.ECS_CLUSTER }}
23+
ECS_TASK_DEFINITION: ".github/.aws/go-service-task-definition.json"
24+
CONTAINER_NAME: ${{ secrets.CONTAINER_NAME }}
25+
SPRING_DATA_MONGODB_URI: ${{ secrets.SPRING_DATA_MONGODB_URI }}
26+
COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE: ${{ secrets.COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE }}
2027

2128
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
2229
jobs:
@@ -47,6 +54,17 @@ jobs:
4754
username: ${{ secrets.DOCKERHUB_USERNAME }}
4855
password: ${{ secrets.DOCKERHUB_TOKEN }}
4956

57+
- name: Configure AWS credentials
58+
uses: aws-actions/configure-aws-credentials@13d241b293754004c80624b5567555c4a39ffbe3
59+
with:
60+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
61+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
62+
aws-region: ${{ env.AWS_REGION }}
63+
64+
- name: Login to Amazon ECR
65+
id: login-ecr
66+
uses: aws-actions/amazon-ecr-login@aaf69d68aa3fb14c1d5a6be9ac61fe15b48453a2
67+
5068
- name: Build and push
5169
id: docker_build
5270
uses: docker/build-push-action@v2
@@ -55,11 +73,35 @@ jobs:
5573
file: ./go-service/Dockerfile
5674
platforms: linux/amd64,linux/arm64
5775
push: true
58-
tags: fielcapao/microservices-design-patterns-go-service:latest
76+
tags: |
77+
fielcapao/microservices-design-patterns-go-service:latest
78+
${{ secrets.ECR_REPOSITORY }}/authentication-service:latest
79+
${{ secrets.ECR_REPOSITORY }}/authentication-service:${{ env.GITHUB_SHA }}
5980
build-args: |
6081
ENV=production
6182
PORT=3006
6283
84+
- name: Replace secrets
85+
run: |
86+
sed -i 's/SPRING_DATA_MONGODB_URI_REPLACE\/${{ env.SPRING_DATA_MONGODB_URI }}/g' ${{ env.ECS_TASK_DEFINITION }}
87+
sed -i 's/COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE_REPLACE\/${{ env.COM_MICROSERVICE_AUTHENTICATION_JWT_KEY_VALUE }}/g' ${{ env.ECS_TASK_DEFINITION }}
88+
89+
- name: Fill in the new image ID in the Amazon ECS task definition
90+
id: task-def
91+
uses: aws-actions/amazon-ecs-render-task-definition@v1
92+
with:
93+
task-definition: ${{ env.ECS_TASK_DEFINITION }}
94+
container-name: ${{ env.CONTAINER_NAME }}
95+
image: ${{ secrets.ECR_REPOSITORY }}/person-service:latest
96+
97+
- name: Deploy Amazon ECS task definition
98+
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
99+
with:
100+
task-definition: ${{ env.ECS_TASK_DEFINITION }}
101+
service: ${{ env.ECS_SERVICE }}
102+
cluster: ${{ env.ECS_CLUSTER }}
103+
wait-for-service-stability: true
104+
63105
- name: Image digest
64106
run: echo ${{ steps.docker_build.outputs.digest }}
65107
# # Build the Docker image with Maven

authentication-service/src/main/java/com/microservice/authentication/config/TracerConfiguration.java

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

go-service/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ require (
1818
github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852
1919
github.com/prometheus/client_golang v1.7.1 // indirect
2020
github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 // indirect
21-
go.mongodb.org/mongo-driver v1.4.1
21+
go.mongodb.org/mongo-driver v1.7.4
2222
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a // indirect
2323
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 // indirect
2424
google.golang.org/appengine v1.6.6 // indirect

0 commit comments

Comments
 (0)