Skip to content
v2.275.0

Compatibility Enum ​

The task launch type compatibility requirement.

Example ​

ts
const vpc = ec2.Vpc.fromLookup(this, 'Vpc', {
  isDefault: true,
});

const cluster = new ecs.Cluster(this, 'FargateCluster', { vpc });

const taskDefinition = new ecs.TaskDefinition(this, 'TD', {
  memoryMiB: '512',
  cpu: '256',
  compatibility: ecs.Compatibility.FARGATE,
});

// Use custom() option - specify custom capacity provider strategy
const runTaskWithCustom = new tasks.EcsRunTask(this, 'RunTaskWithCustom', {
  cluster,
  taskDefinition,
  launchTarget: new tasks.EcsFargateLaunchTarget({
    platformVersion: ecs.FargatePlatformVersion.VERSION1_4,
    capacityProviderOptions: tasks.CapacityProviderOptions.custom([
      { capacityProvider: 'FARGATE_SPOT', weight: 2, base: 1 },
      { capacityProvider: 'FARGATE', weight: 1 },
    ]),
  }),
});

// Use default() option - uses cluster's default capacity provider strategy
const runTaskWithDefault = new tasks.EcsRunTask(this, 'RunTaskWithDefault', {
  cluster,
  taskDefinition,
  launchTarget: new tasks.EcsFargateLaunchTarget({
    platformVersion: ecs.FargatePlatformVersion.VERSION1_4,
    capacityProviderOptions: tasks.CapacityProviderOptions.default(),
  }),
});

Members ​

MemberDescription
EC2The task should specify the EC2 launch type.
FARGATEThe task should specify the Fargate launch type.
EC2_AND_FARGATEThe task can specify either the EC2 or Fargate launch types.
EXTERNALThe task should specify the External launch type.
MANAGED_INSTANCESThe task should specify the Managed Instances launch type.
EC2_AND_MANAGED_INSTANCESThe task can specify either the EC2 or Managed Instances launch types.
FARGATE_AND_MANAGED_INSTANCESThe task can specify either the Fargate or Managed Instances launch types.
FARGATE_AND_EC2_AND_MANAGED_INSTANCESThe task can specify either the Fargate, EC2 or Managed Instances launch types.

Referenced by ​