AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::AutoScaling::ScalingPolicy

AWS::AutoScaling::ScalingPolicy 资源向 Auto Scaling 组添加扩展策略。扩展策略将指明是增加还是减少 Auto Scaling 组,以及增加或减少的数量。有关扩展政策的更多信息,请参阅《Auto Scaling 开发人员指南》中的 Scaling by Policy

您可以将扩展策略与 CloudWatch 警报配合使用。CloudWatch 警报可以根据您指定的参数自动为您发起操作。扩展策略就是警报可以发起的操作类型之一。如需了解介绍如何创建由 CloudWatch 警报触发的 Auto Scaling 策略的代码段,请参阅Auto Scaling 策略被 CloudWatch 警报触发。请注意,您只能将一个扩展策略与警报关联。

此类型支持更新。有关更新此资源的更多信息,请参阅 PutScalingPolicy

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AdjustmentType" : String, "AutoScalingGroupName" : String, "Cooldown" : String, "EstimatedInstanceWarmup" : Integer, "MetricAggregationType" : String, "MinAdjustmentMagnitude" : Integer, "PolicyType" : String, "ScalingAdjustment" : Integer, "StepAdjustments" : [ StepAdjustments, ... ] "TargetTrackingConfiguration" : TargetTrackingConfiguration } }

属性

AdjustmentType

指定 ScalingAdjustment 是绝对数还是当前容量所占的百分比。有效值包括 ChangeInCapacityExactCapacityPercentChangeInCapacity

Required: No

Type: String

更新要求无需中断

AutoScalingGroupName

您希望策略与其关联的 Auto Scaling 组的名称或 Amazon 资源名称 (ARN)。

Required: Yes

Type: String

更新要求无需中断

Cooldown

从一项扩展活动完成到其他与触发相关的扩展活动开始之间的时长(秒)。

如果使用了 StepScaling 策略类型,则不要指定此属性。

Required: No

Type: String

更新要求无需中断

EstimatedInstanceWarmup

新启动的实例可向 CloudWatch 发送指标的估计时间(以秒为单位)。默认情况下,Auto Scaling 使用在 Cooldown 属性中指定的冷却时间。

如果使用了 SimpleScaling 策略类型,则不要指定此属性。

Required: No

Type: Integer

更新要求无需中断

MetricAggregationType

CloudWatch 指标的聚合类型。可以指定 MinimumMaximumAverage。默认情况下,AWS CloudFormation 将指定 Average

如果使用了 SimpleScaling 策略类型,则不要指定此属性。

Required: No

Type: String

更新要求无需中断

MinAdjustmentMagnitude

对于 PercentChangeInCapacity 调整类型,此为要扩展的最少实例数。扩展策略通过此最少实例数更改 Auto Scaling 组的所需容量。此属性替代 MinAdjustmentStep 属性。

Required: No

Type: Integer

更新要求无需中断

PolicyType

Auto Scaling 策略类型。可以指定 SimpleScalingStepScalingTargetTrackingScaling。默认情况下,AWS CloudFormation 将指定 SimpleScaling。有关更多信息,请参阅 Auto Scaling 用户指南 中的扩展策略类型

Required: No

Type: String

更新要求无需中断

ScalingAdjustment

要扩展的实例数量。AdjustmentType 属性确定 AWS CloudFormation 是将此数字解释为绝对数值(指定 ExactCapacity 值时)、将容量增加或减小指定的数值(指定 ChangeInCapacity 值时),还是按现有 Auto Scaling 组大小的百分比增加或减少容量(指定 PercentChangeInCapacity 值时)。正值会为当前容量增加相应容量,负值则会从当前容量中减去相应容量。对于确切的容量,必须指定正值。

Required: Conditional。如果策略类型为 SimpleScaling,则此属性是必需的。其他策略类型均不支持此属性。

Type: Integer

更新要求无需中断

StepAdjustments

让您能够根据警报违例的规模进行扩展的一组调整设置。

Required: Conditional。如果策略类型为 StepScaling,则此属性是必需的。其他策略类型均不支持此属性。

Type: Auto Scaling ScalingPolicy StepAdjustments 列表

更新要求无需中断

TargetTrackingConfiguration

配置一个目标跟踪扩展策略。

Required: Conditional。如果策略类型为 TargetTrackingScaling,则此属性是必需的。其他策略类型均不支持此属性。

Type: Auto Scaling ScalingPolicy TargetTrackingConfiguration

更新要求无需中断

返回值

AWS::AutoScaling::ScalingPolicy 类型指定为 Ref 函数的参数时,AWS CloudFormation 返回策略的 Amazon 资源名称 (ARN),例如 arn:aws-cn:autoscaling:us-east-2:123456789012:scalingPolicy:ab12c4d5-a1b2-a1b2-a1b2-ab12c4d56789:autoScalingGroupName/myStack-AutoScalingGroup-AB12C4D5E6:policyName/myStack-myScalingPolicy-AB12C4D5E6

有关使用 Ref 功能的更多信息,请参阅参考

示例

简单策略类型

下面的示例是一个简单的扩展策略,它在触发时增加一个实例。

JSON

"SimpleScaling" : { "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AdjustmentType" : "ChangeInCapacity", "PolicyType" : "SimpleScaling", "Cooldown" : "60", "AutoScalingGroupName" : { "Ref" : "ASG" }, "ScalingAdjustment" : 1 } }

YAML

SimpleScaling: Type: "AWS::AutoScaling::ScalingPolicy" Properties: AdjustmentType: "ChangeInCapacity" PolicyType: "SimpleScaling" Cooldown: "60" AutoScalingGroupName: Ref: "ASG" ScalingAdjustment: 1

步进策略类型

下面的示例是一个步进扩展策略,它在触发时增加一个或两个实例,具体视警报违例的规模而定。对于高于阈值不足 50 个单位的违例,此策略增加一个实例。对于高于阈值 50 或更多单位的违例,此策略增加两个实例。

JSON

"StepScaling" : { "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AdjustmentType" : "ChangeInCapacity", "AutoScalingGroupName" : { "Ref" : "ASG" }, "PolicyType" : "StepScaling", "MetricAggregationType" : "Average", "EstimatedInstanceWarmup" : "60", "StepAdjustments": [ { "MetricIntervalLowerBound": "0", "MetricIntervalUpperBound" : "50", "ScalingAdjustment": "1" }, { "MetricIntervalLowerBound": "50", "ScalingAdjustment": "2" } ] } }

YAML

StepScaling: Type: "AWS::AutoScaling::ScalingPolicy" Properties: AdjustmentType: "ChangeInCapacity" AutoScalingGroupName: Ref: "ASG" PolicyType: "StepScaling" MetricAggregationType: "Average" EstimatedInstanceWarmup: "60" StepAdjustments: - MetricIntervalLowerBound: "0" MetricIntervalUpperBound: "50" ScalingAdjustment: "1" - MetricIntervalLowerBound: "50" ScalingAdjustment: "2"

目标跟踪扩展策略类型

下面的示例是一个基于 ASGAverageCPUUtilization 指标的目标跟踪扩展策略。

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Parameters" : { "AMI" : { "Type" : "String" }, "Subnets": { "Type" : "CommaDelimitedList" }, "AZs": { "Type" : "CommaDelimitedList" }, "PolicyTargetValue": { "Type" : "String" } }, "Resources" : { "LC" : { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Properties" : { "ImageId" : { "Ref" : "AMI" }, "InstanceType" : "t2.large" } }, "POL" : { "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AutoScalingGroupName" : { "Ref" : "ASG" }, "PolicyType" : "TargetTrackingScaling", "TargetTrackingConfiguration": { "PredefinedMetricSpecification": { "PredefinedMetricType": "ASGAverageCPUUtilization" }, "TargetValue": {"Ref": "PolicyTargetValue"} } } }, "ASG" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "MaxSize" : "1", "AvailabilityZones": { "Ref": "AZs" }, "VPCZoneIdentifier": { "Ref" : "Subnets" }, "MinSize" : "0", "DesiredCapacity" : "0", "LaunchConfigurationName" : { "Ref" : "LC" } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Parameters: AMI: Type: String Subnets: Type: CommaDelimitedList AZs: Type: CommaDelimitedList PolicyTargetValue: Type: String Resources: LC: Type: 'AWS::AutoScaling::LaunchConfiguration' Properties: ImageId: !Ref AMI InstanceType: t2.large POL: Type: 'AWS::AutoScaling::ScalingPolicy' Properties: AutoScalingGroupName: !Ref ASG PolicyType: TargetTrackingScaling TargetTrackingConfiguration: PredefinedMetricSpecification: PredefinedMetricType: ASGAverageCPUUtilization TargetValue: !Ref PolicyTargetValue ASG: Type: 'AWS::AutoScaling::AutoScalingGroup' Properties: MaxSize: '1' AvailabilityZones: !Ref AZs VPCZoneIdentifier: !Ref Subnets MinSize: '0' DesiredCapacity: '0' LaunchConfigurationName: !Ref LC

本页内容: