@aws-cdk/aws-ecs
Version:
The CDK Construct Library for AWS::ECS
92 lines (91 loc) • 3.29 kB
TypeScript
import * as appscaling from '@aws-cdk/aws-applicationautoscaling';
import * as cloudwatch from '@aws-cdk/aws-cloudwatch';
import * as elbv2 from '@aws-cdk/aws-elasticloadbalancingv2';
import { Construct } from 'constructs';
/**
* The properties of a scalable attribute representing task count.
*/
export interface ScalableTaskCountProps extends appscaling.BaseScalableAttributeProps {
}
/**
* The scalable attribute representing task count.
*/
export declare class ScalableTaskCount extends appscaling.BaseScalableAttribute {
/**
* Constructs a new instance of the ScalableTaskCount class.
*/
constructor(scope: Construct, id: string, props: ScalableTaskCountProps);
/**
* Scales in or out based on a specified scheduled time.
*/
scaleOnSchedule(id: string, props: appscaling.ScalingSchedule): void;
/**
* Scales in or out based on a specified metric value.
*/
scaleOnMetric(id: string, props: appscaling.BasicStepScalingPolicyProps): void;
/**
* Scales in or out to achieve a target CPU utilization.
*/
scaleOnCpuUtilization(id: string, props: CpuUtilizationScalingProps): void;
/**
* Scales in or out to achieve a target memory utilization.
*/
scaleOnMemoryUtilization(id: string, props: MemoryUtilizationScalingProps): void;
/**
* Scales in or out to achieve a target Application Load Balancer request count per target.
*/
scaleOnRequestCount(id: string, props: RequestCountScalingProps): void;
/**
* Scales in or out to achieve a target on a custom metric.
*/
scaleToTrackCustomMetric(id: string, props: TrackCustomMetricProps): void;
}
/**
* The properties for enabling scaling based on CPU utilization.
*/
export interface CpuUtilizationScalingProps extends appscaling.BaseTargetTrackingProps {
/**
* The target value for CPU utilization across all tasks in the service.
*/
readonly targetUtilizationPercent: number;
}
/**
* The properties for enabling scaling based on memory utilization.
*/
export interface MemoryUtilizationScalingProps extends appscaling.BaseTargetTrackingProps {
/**
* The target value for memory utilization across all tasks in the service.
*/
readonly targetUtilizationPercent: number;
}
/**
* The properties for enabling scaling based on Application Load Balancer (ALB) request counts.
*/
export interface RequestCountScalingProps extends appscaling.BaseTargetTrackingProps {
/**
* The number of ALB requests per target.
*/
readonly requestsPerTarget: number;
/**
* The ALB target group name.
*/
readonly targetGroup: elbv2.ApplicationTargetGroup;
}
/**
* The properties for enabling target tracking scaling based on a custom CloudWatch metric.
*/
export interface TrackCustomMetricProps extends appscaling.BaseTargetTrackingProps {
/**
* The custom CloudWatch metric to track.
*
* The metric must represent utilization; that is, you will always get the following behavior:
*
* - metric > targetValue => scale out
* - metric < targetValue => scale in
*/
readonly metric: cloudwatch.IMetric;
/**
* The target value for the custom CloudWatch metric.
*/
readonly targetValue: number;
}