|
| 1 | +{ |
| 2 | + "family": "crimelink-backend", |
| 3 | + "networkMode": "awsvpc", |
| 4 | + "requiresCompatibilities": ["FARGATE"], |
| 5 | + "cpu": "512", |
| 6 | + "memory": "1024", |
| 7 | + "executionRoleArn": "arn:aws:iam::YOUR_ACCOUNT_ID:role/ecsTaskExecutionRole", |
| 8 | + "taskRoleArn": "arn:aws:iam::YOUR_ACCOUNT_ID:role/ecsTaskRole", |
| 9 | + "containerDefinitions": [ |
| 10 | + { |
| 11 | + "name": "backend", |
| 12 | + "image": "YOUR_ACCOUNT_ID.dkr.ecr.YOUR_REGION.amazonaws.com/crimelink-backend:latest", |
| 13 | + "essential": true, |
| 14 | + "portMappings": [ |
| 15 | + { |
| 16 | + "containerPort": 8080, |
| 17 | + "protocol": "tcp" |
| 18 | + } |
| 19 | + ], |
| 20 | + "environment": [ |
| 21 | + { "name": "SERVER_PORT", "value": "8080" }, |
| 22 | + { "name": "SUPABASE_BUCKET", "value": "criminal-photos" }, |
| 23 | + { "name": "CORS_ALLOWED_ORIGINS", "value": "https://your-cloudfront-domain.cloudfront.net" } |
| 24 | + ], |
| 25 | + "secrets": [ |
| 26 | + { "name": "DB_URL", "valueFrom": "arn:aws:ssm:YOUR_REGION:YOUR_ACCOUNT_ID:parameter/crimelink/db-url" }, |
| 27 | + { "name": "DB_USERNAME", "valueFrom": "arn:aws:ssm:YOUR_REGION:YOUR_ACCOUNT_ID:parameter/crimelink/db-username" }, |
| 28 | + { "name": "DB_PASSWORD", "valueFrom": "arn:aws:ssm:YOUR_REGION:YOUR_ACCOUNT_ID:parameter/crimelink/db-password" }, |
| 29 | + { "name": "JWT_SECRET", "valueFrom": "arn:aws:ssm:YOUR_REGION:YOUR_ACCOUNT_ID:parameter/crimelink/jwt-secret" }, |
| 30 | + { "name": "SUPABASE_URL", "valueFrom": "arn:aws:ssm:YOUR_REGION:YOUR_ACCOUNT_ID:parameter/crimelink/supabase-url" }, |
| 31 | + { "name": "SUPABASE_SERVICE_KEY", "valueFrom": "arn:aws:ssm:YOUR_REGION:YOUR_ACCOUNT_ID:parameter/crimelink/supabase-service-key" }, |
| 32 | + { "name": "PYTHON_CALL_ANALYSIS_URL", "valueFrom": "arn:aws:ssm:YOUR_REGION:YOUR_ACCOUNT_ID:parameter/crimelink/call-analysis-url" }, |
| 33 | + { "name": "PYTHON_FACIAL_RECOGNITION_URL", "valueFrom": "arn:aws:ssm:YOUR_REGION:YOUR_ACCOUNT_ID:parameter/crimelink/facial-recognition-url" } |
| 34 | + ], |
| 35 | + "healthCheck": { |
| 36 | + "command": ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8080/api/health || exit 1"], |
| 37 | + "interval": 30, |
| 38 | + "timeout": 5, |
| 39 | + "retries": 3, |
| 40 | + "startPeriod": 60 |
| 41 | + }, |
| 42 | + "logConfiguration": { |
| 43 | + "logDriver": "awslogs", |
| 44 | + "options": { |
| 45 | + "awslogs-group": "/ecs/crimelink-backend", |
| 46 | + "awslogs-region": "YOUR_REGION", |
| 47 | + "awslogs-stream-prefix": "ecs" |
| 48 | + } |
| 49 | + } |
| 50 | + } |
| 51 | + ] |
| 52 | +} |
0 commit comments