From 6d4e2f8750863887303023f75f35785028a0f2a8 Mon Sep 17 00:00:00 2001 From: Chris Turner <23338096+christopherjturner@users.noreply.github.com> Date: Fri, 19 Jul 2024 16:29:08 +0100 Subject: [PATCH] adds stubbing for ecs deployment msgs --- src/api/ecs/deployment-handler.js | 12 +++++++- .../ecs-deploy-status-change-event.js | 28 +++++++++++++++++++ src/api/ecs/payloads/ecs-deployment-event.js | 2 +- .../ecs/payloads/lambda-deployment-update.js | 2 +- 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 src/api/ecs/payloads/ecs-deploy-status-change-event.js diff --git a/src/api/ecs/deployment-handler.js b/src/api/ecs/deployment-handler.js index c54371f..a95e1fc 100644 --- a/src/api/ecs/deployment-handler.js +++ b/src/api/ecs/deployment-handler.js @@ -7,6 +7,7 @@ import { config } from '~/src/config' import { ecsDeploymentEvent } from '~/src/api/ecs/payloads/ecs-deployment-event' import { lambdaDeploymentUpdate } from '~/src/api/ecs/payloads/lambda-deployment-update' +import { ecsDeployStatusChangeEvent } from '~/src/api/ecs/payloads/ecs-deploy-status-change-event' const logger = createLogger() @@ -22,7 +23,7 @@ async function deploymentHandler(sqs, payload) { const instanceCount = msg?.desired_count const deploymentId = msg?.deployed_by?.deployment_id - const lamdaId = crypto.randomUUID() + const lamdaId = `ecs-svc/${crypto.randomUUID()}` const taskId = Math.floor(Math.random() * 1000000) // Lamba update @@ -62,6 +63,15 @@ async function deploymentHandler(sqs, payload) { await send(sqs, payload, deploymentFlow[j].delay) } } + + const deployStatusChangeEvent = ecsDeployStatusChangeEvent( + awsAccount, + new Date(), + lamdaId, + 'SERVICE_DEPLOYMENT_COMPLETED', + `ECS deployment ${lamdaId} completed.` + ) + await send(sqs, deployStatusChangeEvent, 5) } async function send(sqs, payload, delay = 0) { diff --git a/src/api/ecs/payloads/ecs-deploy-status-change-event.js b/src/api/ecs/payloads/ecs-deploy-status-change-event.js new file mode 100644 index 0000000..1dd1d55 --- /dev/null +++ b/src/api/ecs/payloads/ecs-deploy-status-change-event.js @@ -0,0 +1,28 @@ +function ecsDeployStatusChangeEvent( + awsAccountId, + now, + deploymentId, + eventName, + reason +) { + return { + version: '0', + id: crypto.randomUUID(), + 'detail-type': 'ECS Deployment State Change', + source: 'aws.ecs', + account: awsAccountId, + time: now, + region: 'eu-west-2', + resources: [ + `arn:aws:ecs:eu-west-2:${awsAccountId}:task/dev-ecs-public/f8bec92bed774ee4b27711702a862de5` + ], + detail: { + eventType: 'INFO', + eventName, + deploymentId, + updatedAt: now, + reason + } + } +} +export { ecsDeployStatusChangeEvent } diff --git a/src/api/ecs/payloads/ecs-deployment-event.js b/src/api/ecs/payloads/ecs-deployment-event.js index 76b7af7..7541bdb 100644 --- a/src/api/ecs/payloads/ecs-deployment-event.js +++ b/src/api/ecs/payloads/ecs-deployment-event.js @@ -161,7 +161,7 @@ function ecsDeploymentEvent( pullStartedAt: now, pullStoppedAt: now, startedAt: now, - startedBy: `ecs-svc/${lambdaId}`, + startedBy: lambdaId, taskArn: `arn:aws:ecs:eu-west-2:000000000000:task/dev-ecs-public/${taskArn}`, taskDefinitionArn: `arn:aws:ecs:eu-west-2:000000000000:task-definition/${service}:${taskId}`, updatedAt: now, diff --git a/src/api/ecs/payloads/lambda-deployment-update.js b/src/api/ecs/payloads/lambda-deployment-update.js index 07ffc1f..38938f0 100644 --- a/src/api/ecs/payloads/lambda-deployment-update.js +++ b/src/api/ecs/payloads/lambda-deployment-update.js @@ -20,7 +20,7 @@ function lambdaDeploymentUpdate( detail: { eventType: 'INFO', eventName: 'IN_PROGRESS', - deploymentId: `ecs-svc/${lambdaId}`, + deploymentId: lambdaId, reason: `Deployment arn:aws:ecs:eu-west-2:${awsAccountId}:service/infra-dev-ecs-public/${service} successfully updated` }, deployed_by: 'Test, User',