PlacementConstraint Class
The placement constraints to use for tasks in the service. For more information, see Amazon ECS Task Placement Constraints.
Tasks will only be placed on instances that match these rules.
Example
ts
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'),
],
}),
propagatedTagSource: ecs.PropagatedTagSource.TASK_DEFINITION,
});
Methods
distinctInstances(): PlacementConstraint // chainable@staticmethod def distinct_instances() -> PlacementConstraintpublic static PlacementConstraint distinctInstances()public static PlacementConstraint DistinctInstances()func DistinctInstances() PlacementConstraintstatic#Use distinctInstance to ensure that each task in a particular group is running on a different container instance.
memberOf(...expressions: string[]): PlacementConstraint // chainable@staticmethod def member_of(expressions: str) -> PlacementConstraintpublic static PlacementConstraint memberOf(String expressions)public static PlacementConstraint MemberOf(string expressions)func MemberOf(Expressions *string) PlacementConstraintstatic#Use memberOf to restrict the selection to a group of valid candidates specified by a query expression.
notes
Multiple expressions can be specified. For more information, see Cluster Query Language.
You can specify multiple expressions in one call. The tasks will only be placed on instances matching all expressions.
toJson(): CfnService.PlacementConstraintProperty[]def to_json(self, ) -> typing.List[PlacementConstraintProperty]public List<PlacementConstraintProperty> toJson()public PlacementConstraintProperty[] ToJson()func ToJson() *[]PlacementConstraintProperty#Return the placement JSON.