Skip to main content

AWS CDK Construct that run a Fargate task. Stack will process only when Fargate task executed successfully and all containers exit with code 0, otherwise rollback

Project description

Waitcondition Hook for AWS Fargate task

This module will create an ECS cluster and run a Fargate task as you defined. It will pause the CloudFormation Stack until the Fargate task is complete and success.

Usage:

import * as cdk from 'aws-cdk-lib';
import { RemovalPolicy } from 'aws-cdk-lib';
import { Vpc } from 'aws-cdk-lib/aws-ec2';
import * as ecr from 'aws-cdk-lib/aws-ecr';
import * as ecs from 'aws-cdk-lib/aws-ecs';
import { LogGroup } from 'aws-cdk-lib/aws-logs';
import { Construct } from 'constructs';
import { FargateRunner } from 'waitcondition-hook-for-aws-fargate-task';
import { Queue } from 'aws-cdk-lib/aws-sqs';

export class FargateRunnerTestStack extends cdk.Stack {
    constructor(scope: Construct, id: string, props?: cdk.StackProps) {
        super(scope, id, props);

        // Define the Fargate Task
        const taskDefinition = new ecs.FargateTaskDefinition(this, 'MyTask', {});
        // import exiting ecr repo
        const repo = ecr.Repository.fromRepositoryName(this, 'MyRepo', 'RepoName');
        // Add a container to the task
        taskDefinition.addContainer('MyContainer', {
            image: ecs.ContainerImage.fromEcrRepository(repo),
        });
        // Create the Fargate runner
        const myFargateRunner = new FargateRunner(this, 'MyRunner', {
            fargateTaskDef: taskDefinition,
            timeout: `${60 * 5}`,
            vpc: vpc,
        });
        // Create the SQS queue
        const myQueue = new Queue(this, 'MyQueue', {});

        // Add dependency
        myQueue.node.addDependency(myFargateRunner);

    }
}
const app = new cdk.App();

const env = {
    account: process.env.CDK_DEFAULT_ACCOUNT,
    region: process.env.CDK_DEFAULT_REGION,
};
new FargateRunnerTestStack(app, 'FargateRunnerTestStack', { env: env });

With AWS CDK script above (in typescript), it will create a AWS Faragate task and run in a ECS Cluster, with the the task definition that defined. The SQS queue which depends on the will be create only after the Fargate task execute complete and succeed (exit with EXIT CODE: 0)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file waitcondition-hook-for-aws-fargate-task-1.0.2.tar.gz.

File metadata

File hashes

Hashes for waitcondition-hook-for-aws-fargate-task-1.0.2.tar.gz
Algorithm Hash digest
SHA256 03bd754cea334b4c16164ec7d87ab7c42bf68844ee2f01358ba20ab8f4e79045
MD5 7c865f5bef731b5cd0c7de974bf97525
BLAKE2b-256 f0320c74e0a17654fbb8cc323b651b93651680d46dceaaef9fb3faa265ba242c

See more details on using hashes here.

File details

Details for the file waitcondition_hook_for_aws_fargate_task-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for waitcondition_hook_for_aws_fargate_task-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7ae3e9a9ee79ea71e43421307517af07d274f5791aab39c875cfeae2030cbaab
MD5 9acf0ca08221c748401d8b277eec0099
BLAKE2b-256 b849ede6fde2ecbe4d3e097a8a3e7b5516b724fcdcc09982ab656c9cf2824af9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page