class PlacementStrategy
Language | Type name |
---|---|
.NET | Amazon.CDK.AWS.ECS.PlacementStrategy |
Java | software.amazon.awscdk.services.ecs.PlacementStrategy |
Python | aws_cdk.aws_ecs.PlacementStrategy |
TypeScript (source) | @aws-cdk/aws-ecs » PlacementStrategy |
The placement strategies to use for tasks in the service. For more information, see Amazon ECS Task Placement Strategies.
Tasks will preferentially be placed on instances that match these rules.
Example
const vpc = ec2.Vpc.fromLookup(this, 'Vpc', {
isDefault: true,
});
const cluster = new ecs.Cluster(this, 'Ec2Cluster', { vpc });
cluster.addCapacity('DefaultAutoScalingGroup', {
instanceType: new ec2.InstanceType('t2.micro'),
vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC },
});
const taskDefinition = new ecs.TaskDefinition(this, 'TD', {
compatibility: ecs.Compatibility.EC2,
});
taskDefinition.addContainer('TheContainer', {
image: ecs.ContainerImage.fromRegistry('foo/bar'),
memoryLimitMiB: 256,
});
const runTask = new tasks.EcsRunTask(this, 'Run', {
integrationPattern: sfn.IntegrationPattern.RUN_JOB,
cluster,
taskDefinition,
launchTarget: new tasks.EcsEc2LaunchTarget({
placementStrategies: [
ecs.PlacementStrategy.spreadAcrossInstances(),
ecs.PlacementStrategy.packedByCpu(),
ecs.PlacementStrategy.randomly(),
],
placementConstraints: [
ecs.PlacementConstraint.memberOf('blieptuut'),
],
}),
});
Methods
Name | Description |
---|---|
to | Return the placement JSON. |
static packed | Places tasks on the container instances with the least available capacity of the specified resource. |
static packed | Places tasks on container instances with the least available amount of CPU capacity. |
static packed | Places tasks on container instances with the least available amount of memory capacity. |
static randomly() | Places tasks randomly. |
static spread | Places tasks evenly based on the specified value. |
static spread | Places tasks evenly across all container instances in the cluster. |
Json()
topublic toJson(): PlacementStrategyProperty[]
Returns
Return the placement JSON.
By(resource)
static packedpublic static packedBy(resource: BinPackResource): PlacementStrategy
Parameters
- resource
Bin
Pack Resource
Returns
Places tasks on the container instances with the least available capacity of the specified resource.
ByCpu()
static packedpublic static packedByCpu(): PlacementStrategy
Returns
Places tasks on container instances with the least available amount of CPU capacity.
This minimizes the number of instances in use.
ByMemory()
static packedpublic static packedByMemory(): PlacementStrategy
Returns
Places tasks on container instances with the least available amount of memory capacity.
This minimizes the number of instances in use.
static randomly()
public static randomly(): PlacementStrategy
Returns
Places tasks randomly.
Across(...fields)
static spreadpublic static spreadAcross(...fields: string[]): PlacementStrategy
Parameters
- fields
string
Returns
Places tasks evenly based on the specified value.
You can use one of the built-in attributes found on BuiltInAttributes
or supply your own custom instance attributes. If more than one attribute
is supplied, spreading is done in order.
AcrossInstances()
static spreadpublic static spreadAcrossInstances(): PlacementStrategy
Returns
Places tasks evenly across all container instances in the cluster.