Compatibility

class aws_cdk.aws_ecs.Compatibility(*values)

Bases: Enum

The task launch type compatibility requirement.

ExampleMetadata:

infused

Example:

vpc = ec2.Vpc.from_lookup(self, "Vpc",
    is_default=True
)

cluster = ecs.Cluster(self, "FargateCluster", vpc=vpc)

task_definition = ecs.TaskDefinition(self, "TD",
    memory_mi_b="512",
    cpu="256",
    compatibility=ecs.Compatibility.FARGATE
)

container_definition = task_definition.add_container("TheContainer",
    image=ecs.ContainerImage.from_registry("foo/bar"),
    memory_limit_mi_b=256
)

run_task = tasks.EcsRunTask(self, "RunFargate",
    integration_pattern=sfn.IntegrationPattern.RUN_JOB,
    cluster=cluster,
    task_definition=task_definition,
    assign_public_ip=True,
    container_overrides=[tasks.ContainerOverride(
        container_definition=container_definition,
        environment=[tasks.TaskEnvironmentVariable(name="SOME_KEY", value=sfn.JsonPath.string_at("$.SomeKey"))]
    )],
    launch_target=tasks.EcsFargateLaunchTarget(),
    propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
)

Attributes

EC2

The task should specify the EC2 launch type.

EC2_AND_FARGATE

The task can specify either the EC2 or Fargate launch types.

EC2_AND_MANAGED_INSTANCES

The task can specify either the EC2 or Managed Instances launch types.

EXTERNAL

The task should specify the External launch type.

FARGATE

The task should specify the Fargate launch type.

FARGATE_AND_EC2_AND_MANAGED_INSTANCES

The task can specify either the Fargate, EC2 or Managed Instances launch types.

FARGATE_AND_MANAGED_INSTANCES

The task can specify either the Fargate or Managed Instances launch types.

MANAGED_INSTANCES

The task should specify the Managed Instances launch type.