@aws-cdk/aws-ecs
Version:
The CDK Construct Library for AWS::ECS
98 lines (97 loc) • 3.56 kB
TypeScript
import { CfnService } from './ecs.generated';
/**
* Instance resource used for bin packing
*/
export declare enum BinPackResource {
/**
* Fill up hosts' CPU allocations first
*/
CPU = "cpu",
/**
* Fill up hosts' memory allocations first
*/
MEMORY = "memory"
}
/**
* The placement strategies to use for tasks in the service. For more information, see
* [Amazon ECS Task Placement Strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html).
*
* Tasks will preferentially be placed on instances that match these rules.
*/
export declare class PlacementStrategy {
private readonly json;
/**
* Places tasks evenly across all container instances in the cluster.
*/
static spreadAcrossInstances(): PlacementStrategy;
/**
* 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.
*
* @default attributes instanceId
*/
static spreadAcross(...fields: string[]): PlacementStrategy;
/**
* Places tasks on container instances with the least available amount of CPU capacity.
*
* This minimizes the number of instances in use.
*/
static packedByCpu(): PlacementStrategy;
/**
* Places tasks on container instances with the least available amount of memory capacity.
*
* This minimizes the number of instances in use.
*/
static packedByMemory(): PlacementStrategy;
/**
* Places tasks on the container instances with the least available capacity of the specified resource.
*/
static packedBy(resource: BinPackResource): PlacementStrategy;
/**
* Places tasks randomly.
*/
static randomly(): PlacementStrategy;
/**
* Constructs a new instance of the PlacementStrategy class.
*/
private constructor();
/**
* Return the placement JSON
*/
toJson(): CfnService.PlacementStrategyProperty[];
}
/**
* The placement constraints to use for tasks in the service. For more information, see
* [Amazon ECS Task Placement Constraints](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html).
*
* Tasks will only be placed on instances that match these rules.
*/
export declare class PlacementConstraint {
private readonly json;
/**
* Use distinctInstance to ensure that each task in a particular group is running on a different container instance.
*/
static distinctInstances(): PlacementConstraint;
/**
* Use memberOf to restrict the selection to a group of valid candidates specified by a query expression.
*
* Multiple expressions can be specified. For more information, see
* [Cluster Query Language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html).
*
* You can specify multiple expressions in one call. The tasks will only be placed on instances matching all expressions.
*
* @see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html
*/
static memberOf(...expressions: string[]): PlacementConstraint;
/**
* Constructs a new instance of the PlacementConstraint class.
*/
private constructor();
/**
* Return the placement JSON
*/
toJson(): CfnService.PlacementConstraintProperty[];
}