Metadata-Version: 2.1
Name: cdk-fargate-run-task
Version: 0.1.53
Summary: Define and run container tasks on AWS Fargate immediately or with schedule
Home-page: https://github.com/pahud/cdk-fargate-run-task.git
Author: Pahud<pahudnet@gmail.com>
License: Apache-2.0
Project-URL: Source, https://github.com/pahud/cdk-fargate-run-task.git
Description: [![NPM version](https://badge.fury.io/js/cdk-fargate-run-task.svg)](https://badge.fury.io/js/cdk-fargate-run-task)
        [![PyPI version](https://badge.fury.io/py/cdk-fargate-run-task.svg)](https://badge.fury.io/py/cdk-fargate-run-task)
        ![Release](https://github.com/pahud/cdk-fargate-run-task/workflows/Release/badge.svg?branch=main)
        
        # cdk-fargate-run-task
        
        Define and run container tasks on AWS Fargate at once or by schedule.
        
        # sample
        
        ```python
        # Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
        app = cdk.App()
        
        env = {
            "account": process.env.CDK_DEFAULT_ACCOUNT,
            "region": process.env.CDK_DEFAULT_REGION
        }
        
        stack = cdk.Stack(app, "run-task-demo-stack", env=env)
        
        # define your task
        task = ecs.FargateTaskDefinition(stack, "Task", cpu=256, memory_limit_mi_b=512)
        
        # add contianer into the task
        task.add_container("Ping",
            image=ecs.ContainerImage.from_registry("busybox"),
            command=["sh", "-c", "ping -c 3 google.com"
            ],
            logging=ecs.AwsLogDriver(
                stream_prefix="Ping",
                log_group=LogGroup(stack, "LogGroup",
                    log_group_name=f"{stack.stackName}LogGroup",
                    retention=RetentionDays.ONE_DAY
                )
            )
        )
        
        # deploy and run this task once
        run_task_at_once = RunTask(stack, "RunDemoTaskOnce", task=task)
        
        # or run it with schedule(every hour 0min)
        RunTask(stack, "RunDemoTaskEveryHour",
            task=task,
            cluster=run_task_at_once.cluster,
            run_once=False,
            schedule=Schedule.cron(minute="0")
        )
        ```
        
        # ECS Anywhere
        
        [Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) allows you to run ECS tasks on external instances. To run external task once or on schedule:
        
        ```python
        # Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
        external_task = ecs.TaskDefinition(stack, "ExternalTask",
            cpu="256",
            memory_mi_b="512",
            compatibility=ecs.Compatibility.EXTERNAL
        )
        
        external_task.add_container("ExternalPing",
            image=ecs.ContainerImage.from_registry("busybox"),
            command=["sh", "-c", "ping -c 3 google.com"
            ],
            logging=ecs.AwsLogDriver(
                stream_prefix="Ping",
                log_group=LogGroup(stack, "ExternalLogGroup",
                    retention=RetentionDays.ONE_DAY,
                    removal_policy=cdk.RemovalPolicy.DESTROY
                )
            )
        )
        
        # run it once on external instance
        RunTask(stack, "RunDemoTaskFromExternal",
            task=external_task,
            cluster=existing_cluster,
            launch_type=LaunchType.EXTERNAL
        )
        
        # run it by schedule  on external instance
        RunTask(stack, "RunDemoTaskFromExternalSchedule",
            task=external_task,
            cluster=existing_cluster,
            launch_type=LaunchType.EXTERNAL,
            run_at_once=False,
            schedule=Schedule.cron(minute="0")
        )
        ```
        
        Please note when you run task in `EXTERNAL` launch type, no fargate tasks will be scheduled. You will be responsible to register the external instances to your ECS cluster. See [Registering an external instance to a cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) for more details.
        
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Typing :: Typed
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved
Requires-Python: >=3.6
Description-Content-Type: text/markdown
