Skip to content
This repository was archived by the owner on Mar 27, 2023. It is now read-only.

Commit 75e94c8

Browse files
committed
Merge branch '41-feature-queue-processing-fargate-service' into 'develop'
Resolve "Implement QueueProcessingFargateService" Closes #41 See merge request verbose-equals-true/django-postgres-vue-gitlab-ecs!81
2 parents abdac76 + b1ba135 commit 75e94c8

File tree

7 files changed

+263
-53
lines changed

7 files changed

+263
-53
lines changed

awscdk/awscdk/awscdk.egg-info/requires.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ aws-cdk.aws_elasticloadbalancingv2==1.38.0
1515
aws-cdk.aws_ecs==1.38.0
1616
aws-cdk.aws_ecs_patterns==1.38.0
1717
aws-cdk.aws_autoscaling==1.38.0
18+
aws-cdk.aws_sqs==1.38.0

awscdk/awscdk/cdk_app_root.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,14 @@ def __init__(
142142
self.backend.backend_task.task_role,
143143
self.backend_tasks.collectstatic_task.task_role,
144144
self.backend_tasks.create_superuser_task.task_role,
145-
self.celery_worker_service.celery_default_worker_task.task_role,
145+
# self.celery_worker_service.celery_default_worker_task.task_role,
146+
self.celery_worker_service.celery_default_worker_service.task_definition.task_role,
146147
]
147148

149+
self.celery_worker_service.celery_default_worker_service.service.connections.security_groups.append(
150+
self.vpc.vpc_default_security_group
151+
)
152+
148153
for task_role in task_roles:
149154
self.assets.assets_bucket.grant_read_write(task_role)
150155

awscdk/awscdk/celery_workers.py

Lines changed: 47 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
aws_ecs as ecs,
55
aws_ecs_patterns as ecs_patterns,
66
aws_elasticloadbalancingv2 as elbv2,
7+
aws_sqs as sqs,
78
)
89

910

@@ -13,16 +14,50 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
1314
scope, id, **kwargs,
1415
)
1516

16-
self.celery_default_worker_task = ecs.FargateTaskDefinition(
17-
self, "DefaultCeleryWorkerTask"
17+
# self.celery_default_worker_task = ecs.FargateTaskDefinition(
18+
# self, "DefaultCeleryWorkerTask"
19+
# )
20+
21+
# self.celery_default_worker_task.add_container(
22+
# "DefaultCeleryWorkerContaienr",
23+
# image=scope.image,
24+
# logging=ecs.LogDrivers.aws_logs(
25+
# stream_prefix="CeleryDefaultWorker"
26+
# ),
27+
# environment=scope.variables.regular_variables,
28+
# secrets=scope.variables.secret_variables,
29+
# command=[
30+
# 'celery',
31+
# 'worker',
32+
# '-A',
33+
# 'backend.celery_app:app',
34+
# '-l',
35+
# 'info',
36+
# ],
37+
# )
38+
39+
# self.celery_default_worker_service = ecs.FargateService(
40+
# self,
41+
# "DefaultCeleryWorkerService",
42+
# task_definition=self.celery_default_worker_task,
43+
# assign_public_ip=True,
44+
# cluster=scope.ecs.cluster,
45+
# security_group=ec2.SecurityGroup.from_security_group_id(
46+
# self,
47+
# "CeleryDefaultWorkerSG",
48+
# security_group_id=scope.vpc.vpc_default_security_group,
49+
# ),
50+
# )
51+
52+
self.default_celery_worker_queue = sqs.Queue(
53+
self, "DefaultCeleryWorkerQueue", queue_name="default"
1854
)
1955

20-
self.celery_default_worker_task.add_container(
21-
"DefaultCeleryWorkerContaienr",
56+
self.celery_default_worker_service = ecs_patterns.QueueProcessingFargateService(
57+
self,
58+
"CeleryDefaultWorkerService",
2259
image=scope.image,
23-
logging=ecs.LogDrivers.aws_logs(
24-
stream_prefix="CeleryDefaultWorker"
25-
),
60+
queue=self.default_celery_worker_queue,
2661
environment=scope.variables.regular_variables,
2762
secrets=scope.variables.secret_variables,
2863
command=[
@@ -33,17 +68,10 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
3368
'-l',
3469
'info',
3570
],
36-
)
37-
38-
self.celery_default_worker_service = ecs.FargateService(
39-
self,
40-
"DefaultCeleryWorkerService",
41-
task_definition=self.celery_default_worker_task,
42-
assign_public_ip=True,
43-
cluster=scope.ecs.cluster,
44-
security_group=ec2.SecurityGroup.from_security_group_id(
45-
self,
46-
"CeleryDefaultWorkerSG",
47-
security_group_id=scope.vpc.vpc_default_security_group,
71+
family="celery-default-worker",
72+
log_driver=ecs.LogDrivers.aws_logs(
73+
stream_prefix="CeleryDefaultWorker"
4874
),
75+
vpc=scope.vpc,
76+
desired_task_count=1,
4977
)

awscdk/setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"aws-cdk.aws_ecs==1.38.0",
3333
"aws-cdk.aws_ecs_patterns==1.38.0",
3434
"aws-cdk.aws_autoscaling==1.38.0",
35+
"aws-cdk.aws_sqs==1.38.0",
3536
],
3637
python_requires=">=3.6",
3738
classifiers=[

0 commit comments

Comments
 (0)