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 'fargate-runner';
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.1.tar.gz.

File metadata

File hashes

Hashes for waitcondition-hook-for-aws-fargate-task-1.0.1.tar.gz
Algorithm Hash digest
SHA256 4ddbd176bd317938035df11f0b7a389909831720e68dbaa1e01f354058428262
MD5 3125efdee7320a3ff749c28f909db881
BLAKE2b-256 a9d6a97123630c4d1b2304f431b4217e1e903666bca296a64fa23259bfbddf85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for waitcondition_hook_for_aws_fargate_task-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 77f13d8717b2cad17d29b681d1ee4f1ba90c8a05cd671dc8d96822d6b3c405ac
MD5 e97bcf95e693575a5620f05f6a2ba538
BLAKE2b-256 b5a5a1fd01391ef726c5842b0223af00b7f936563aa11f49ac7db66fecd59606

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