Skip to content

Commit

Permalink
Tarkitus onko edellinen ECS-ajo (DBT tai Lampi export) vielä käynnissä
Browse files Browse the repository at this point in the history
  • Loading branch information
augustk committed Jan 30, 2025
1 parent a122d66 commit b0ab478
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 15 deletions.
20 changes: 20 additions & 0 deletions cdk/lib/ecs-stack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import * as cdk from 'aws-cdk-lib';
import * as appscaling from 'aws-cdk-lib/aws-applicationautoscaling';
import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
import * as cloudwatchActions from 'aws-cdk-lib/aws-cloudwatch-actions';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as ecr from 'aws-cdk-lib/aws-ecr';
import * as ecs from 'aws-cdk-lib/aws-ecs';
Expand Down Expand Up @@ -34,6 +35,18 @@ export class EcsStack extends cdk.Stack {

const config: Config = props.config;

const ecsProsessiOnKaynnissaTable = new dynamodb.TableV2(
this,
'ecsProsessiOnKaynnissa',
{
tableName: 'ecsProsessiOnKaynnissa',
partitionKey: {
name: 'prosessi',
type: dynamodb.AttributeType.STRING,
},
}
);

const addActionsToAlarm = (alarm: cloudwatch.Alarm) => {
alarm.addAlarmAction(
new cloudwatchActions.SnsAction(props.slackAlarmIntegrationSnsTopic)
Expand Down Expand Up @@ -176,6 +189,9 @@ export class EcsStack extends cdk.Stack {
dbtRunnerScheduledFargateTask.taskDefinition.taskRole
);
dbtLogsBucket.grantReadWrite(dbtRunnerScheduledFargateTask.taskDefinition.taskRole);
ecsProsessiOnKaynnissaTable.grantReadWriteData(
dbtRunnerScheduledFargateTask.taskDefinition.taskRole
);

dbtRunnerScheduledFargateTask.taskDefinition
.obtainExecutionRole()
Expand Down Expand Up @@ -487,6 +503,10 @@ export class EcsStack extends cdk.Stack {
lampiSiirtajaScheduledFargateTask.taskDefinition.taskRole
);

ecsProsessiOnKaynnissaTable.grantReadWriteData(
lampiSiirtajaScheduledFargateTask.taskDefinition.taskRole
);

lampiSiirtajaScheduledFargateTask.taskDefinition.addToExecutionRolePolicy(
new iam.PolicyStatement({
actions: [
Expand Down
3 changes: 2 additions & 1 deletion dbt-container/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ apk --no-cache add \
python3 \
py3-pip \
aws-cli \
tzdata
tzdata \
jq

ln -sf /usr/bin/python3 /usr/bin/python
ln -sf /usr/bin/pip3 /usr/bin/pip
Expand Down
12 changes: 12 additions & 0 deletions dbt-container/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@ start=$(date +%s)
cd dbt
. venv/bin/activate

IS_RUNNING=$(aws dynamodb execute-statement --statement "SELECT onKaynnissa FROM ecsProsessiOnKaynnissa WHERE prosessi='dbt-scheduled-task'" | jq ' .Items.[0].onKaynnissa.S ')
if [ $IS_RUNNING == "true" ] ; then
echo "ERROR: Edellinen ajo on vielä käynnissä."
exit 1
fi

echo "Merkitetään DynamoDB:hen että prosessi on ajossa"
aws dynamodb execute-statement --statement "UPDATE ecsProsessiOnKaynnissa SET onKaynnissa='true' WHERE prosessi='dbt-scheduled-task' RETURNING ALL NEW *"

dbt seed -s raw_taulut --target=prod
dbt run-operation create_raw_tables --target=prod

Expand Down Expand Up @@ -41,4 +50,7 @@ CURRENT_TIME="$(TZ=Europe/Helsinki date +%Y-%m-%d_%H:%M:%S%Z)"
echo "$CURRENT_TIME"
aws s3 cp ./logs s3://$DBT_LOGS_BUCKET/$CURRENT_TIME --recursive --include 'logs/dbt.log*' --content-type 'text/plain'

echo "Merkitetään DynamoDB:hen että prosessi ei ole enää ajossa"
aws dynamodb execute-statement --statement "UPDATE ecsProsessiOnKaynnissa SET onKaynnissa='false' WHERE prosessi='dbt-scheduled-task' RETURNING ALL NEW *"

exit 0
17 changes: 3 additions & 14 deletions lampi-siirtaja-container/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,9 @@ case "$(uname -m)" in
esac
echo $ARCHITECTURE

#echo "Installing needed software"
#apk --no-cache add \
# python3 \
# py3-pip \
# libpq-dev \
# g++ \
# make
echo "Installing needed software"
apk --no-cache add \
jq

echo "Listing contents of /root folder"
ls -Al /root

#echo "Listing contents of /root/lampi-siirtaja folder"
#ls -Al /root/lampi-siirtaja

#echo "Installing dependencies with npm"
#cd /root/lampi-siirtaja
#npm ci
12 changes: 12 additions & 0 deletions lampi-siirtaja-container/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,23 @@ set -e

echo "Running Lampi-siirtäjä..."

IS_RUNNING=$(aws dynamodb execute-statement --statement "SELECT onKaynnissa FROM ecsProsessiOnKaynnissa WHERE prosessi='lampi-scheduled-task'" | jq ' .Items.[0].onKaynnissa.S ')
if [ $IS_RUNNING == "true" ] ; then
echo "ERROR: Edellinen ajo on vielä käynnissä."
exit 1
fi

echo "Merkitetään DynamoDB:hen että prosessi on ajossa"
aws dynamodb execute-statement --statement "UPDATE ecsProsessiOnKaynnissa SET onKaynnissa='true' WHERE prosessi='lampi-scheduled-task' RETURNING ALL NEW *"

start=$(date +%s)

cd /root
java -jar ovara-lampi-siirtaja.jar

echo "Ajon kesto `expr $(date +%s) - ${start}` s"

echo "Merkitetään DynamoDB:hen että prosessi ei ole enää ajossa"
aws dynamodb execute-statement --statement "UPDATE ecsProsessiOnKaynnissa SET onKaynnissa='false' WHERE prosessi='lampi-scheduled-task' RETURNING ALL NEW *"

exit 0

0 comments on commit b0ab478

Please sign in to comment.