Skip to main content

Waitcondition Hook for AWS Fargate task

WaitCondition hook for AWS Fargate tasks is a AWS CDK Construct that helps builders to run a AWS Fargate task with one or multiple container embedded into a CloudFormation lifecycle. You can use this construct add dependency between resources and the AWS Fargate task execution result (eg. Database migration, image build and packing, invoking third party/on-prem API). waitcondition-hook-for-aws-fargate-task construct will also handle the failure of the task, and rollback the CloudFormation stack after.

Prerequisites

  1. An AWS account
  2. AWS Cloud Development Kit (CDK). For more information about this, see AWS CDK Toolkit (cdk command) in the AWS CDK documentation.
  3. Node package manager (npm), installed and configured for CDK Typescript. For more information about this, see Downloading and installing Node.js and npm in the npm documentation.

Target architecture

Workflow

Deployment steps

Install the package:

yarn add aitcondition-hook-for-aws-fargate-task

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 VPC
        const vpc = new Vpc(this, 'MyVpc')
        // 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 });

Deploy!

cdk deploy

Useful CDK commands

  • npm run build compile typescript to js
  • npm run watch watch for changes and compile
  • npm run test perform the jest unit tests
  • cdk deploy deploy this stack to your default AWS account/region
  • cdk diff compare deployed stack with current state
  • cdk synth emits the synthesized CloudFormation template

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.

Metadata

Release files for waitcondition-hook-for-aws-fargate-task 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for waitcondition-hook-for-aws-fargate-task 1.0.6
File Size Uploaded
waitcondition-hook-for-aws-fargate-task-1.0.6.tar.gz 58.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for waitcondition-hook-for-aws-fargate-task 1.0.6
File Interpreter ABI Platform
waitcondition_hook_for_aws_fargate_task-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 115.1 kB

Release files / waitcondition-hook-for-aws-fargate-task-1.0.6.tar.gz

Download URL waitcondition-hook-for-aws-fargate-task-1.0.6.tar.gz
Size 58.1 kB
Tags Source
SHA-256 checksum
How to use checksums
bd78b60c2c8e9403fb0dac6c0de4d2f3a36d2ed996beeee8b644963225314a2e
BLAKE2b-256 checksum
How to use checksums
c77ae9cc508ab0ecbea29eb63b2e60073219cabe80435171c4e7f19f6f0c97f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / waitcondition_hook_for_aws_fargate_task-1.0.6-py3-none-any.whl

Download URL waitcondition_hook_for_aws_fargate_task-1.0.6-py3-none-any.whl
Size 57.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5a8540bca6f585eee5fd81588a54ba2dc73c5e4d32cfba9a4e2d55cd4a615c5
BLAKE2b-256 checksum
How to use checksums
23afd31e5fb8444fb213131a849fb02d2f417b84b6143cd727b8c67983dff8e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.2

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page