Metadata-Version: 2.1
Name: aws-cdk.aws-ecs-patterns
Version: 1.13.0
Summary: CDK Constructs for AWS ECS
Home-page: https://github.com/aws/aws-cdk
Author: Amazon Web Services
License: UNKNOWN
Project-URL: Source, https://github.com/aws/aws-cdk.git
Description: # CDK Construct library for higher-level ECS Constructs
        
        <html></html>---
        
        
        ![Stability: Stable](https://img.shields.io/badge/stability-Stable-success.svg?style=for-the-badge)
        
        ---
        <html></html>
        
        This library provides higher-level Amazon ECS constructs which follow common architectural patterns. It contains:
        
        * Application Load Balanced Services
        * Network Load Balanced Services
        * Queue Processing Services
        * Scheduled Tasks (cron jobs)
        
        ## Application Load Balanced Services
        
        To define an Amazon ECS service that is behind an application load balancer, instantiate one of the following:
        
        * `ApplicationLoadBalancedEc2Service`
        
        ```python
        # Example may have issues. See https://github.com/aws/jsii/issues/826
        load_balanced_ecs_service = ecs_patterns.ApplicationLoadBalancedEc2Service(stack, "Service",
            cluster=cluster,
            memory_limit_mi_b=1024,
            task_image_options={
                "image": ecs.ContainerImage.from_registry("test"),
                "environment": {
                    "TEST_ENVIRONMENT_VARIABLE1": "test environment variable 1 value",
                    "TEST_ENVIRONMENT_VARIABLE2": "test environment variable 2 value"
                }
            },
            desired_count=2
        )
        ```
        
        * `ApplicationLoadBalancedFargateService`
        
        ```python
        # Example may have issues. See https://github.com/aws/jsii/issues/826
        load_balanced_fargate_service = ecs_patterns.ApplicationLoadBalancedFargateService(stack, "Service",
            cluster=cluster,
            memory_limit_mi_b=1024,
            cpu=512,
            task_image_options={
                "image": ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")
            }
        )
        ```
        
        Instead of providing a cluster you can specify a VPC and CDK will create a new ECS cluster.
        If you deploy multiple services CDK will only create one cluster per VPC.
        
        You can omit `cluster` and `vpc` to let CDK create a new VPC with two AZs and create a cluster inside this VPC.
        
        ## Network Load Balanced Services
        
        To define an Amazon ECS service that is behind a network load balancer, instantiate one of the following:
        
        * `NetworkLoadBalancedEc2Service`
        
        ```python
        # Example may have issues. See https://github.com/aws/jsii/issues/826
        load_balanced_ecs_service = ecs_patterns.NetworkLoadBalancedEc2Service(stack, "Service",
            cluster=cluster,
            memory_limit_mi_b=1024,
            task_image_options={
                "image": ecs.ContainerImage.from_registry("test"),
                "environment": {
                    "TEST_ENVIRONMENT_VARIABLE1": "test environment variable 1 value",
                    "TEST_ENVIRONMENT_VARIABLE2": "test environment variable 2 value"
                }
            },
            desired_count=2
        )
        ```
        
        * `NetworkLoadBalancedFargateService`
        
        ```python
        # Example may have issues. See https://github.com/aws/jsii/issues/826
        load_balanced_fargate_service = ecs_patterns.NetworkLoadBalancedFargateService(stack, "Service",
            cluster=cluster,
            memory_limit_mi_b=1024,
            cpu=512,
            task_image_options={
                "image": ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")
            }
        )
        ```
        
        The CDK will create a new Amazon ECS cluster if you specify a VPC and omit `cluster`. If you deploy multiple services the CDK will only create one cluster per VPC.
        
        If `cluster` and `vpc` are omitted, the CDK creates a new VPC with subnets in two Availability Zones and a cluster within this VPC.
        
        ## Queue Processing Services
        
        To define a service that creates a queue and reads from that queue, instantiate one of the following:
        
        * `QueueProcessingEc2Service`
        
        ```python
        # Example may have issues. See https://github.com/aws/jsii/issues/826
        queue_processing_ec2_service = QueueProcessingEc2Service(stack, "Service",
            cluster=cluster,
            memory_limit_mi_b=1024,
            image=ecs.ContainerImage.from_registry("test"),
            command=["-c", "4", "amazon.com"],
            enable_logging=False,
            desired_task_count=2,
            environment={
                "TEST_ENVIRONMENT_VARIABLE1": "test environment variable 1 value",
                "TEST_ENVIRONMENT_VARIABLE2": "test environment variable 2 value"
            },
            queue=queue,
            max_scaling_capacity=5
        )
        ```
        
        * `QueueProcessingFargateService`
        
        ```python
        # Example may have issues. See https://github.com/aws/jsii/issues/826
        queue_processing_fargate_service = QueueProcessingFargateService(stack, "Service",
            cluster=cluster,
            memory_limit_mi_b=512,
            image=ecs.ContainerImage.from_registry("test"),
            command=["-c", "4", "amazon.com"],
            enable_logging=False,
            desired_task_count=2,
            environment={
                "TEST_ENVIRONMENT_VARIABLE1": "test environment variable 1 value",
                "TEST_ENVIRONMENT_VARIABLE2": "test environment variable 2 value"
            },
            queue=queue,
            max_scaling_capacity=5
        )
        ```
        
        ## Scheduled Tasks
        
        To define a task that runs periodically, instantiate an `ScheduledEc2Task`:
        
        ```python
        # Example may have issues. See https://github.com/aws/jsii/issues/826
        # Instantiate an Amazon EC2 Task to run at a scheduled interval
        ecs_scheduled_task = ScheduledEc2Task(stack, "ScheduledTask",
            cluster=cluster,
            scheduled_ec2_task_image_options={
                "image": ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
                "memory_limit_mi_b": 256,
                "environment": {"name": "TRIGGER", "value": "CloudWatch Events"}
            },
            schedule=events.Schedule.expression("rate(1 minute)")
        )
        ```
        
Platform: UNKNOWN
Requires-Python: >=3.6
Description-Content-Type: text/markdown
