Provides a ESS scaling rule resource.
For information about ess scaling rule, see CreateScalingRule.
variable "name" {
default = "terraform-example"
}
resource "random_integer" "default" {
min = 10000
max = 99999
}
locals {
name = "${var.name}-${random_integer.default.result}"
}
data "alicloud_zones" "default" {
available_disk_category = "cloud_efficiency"
available_resource_creation = "VSwitch"
}
data "alicloud_instance_types" "default" {
availability_zone = data.alicloud_zones.default.zones[0].id
cpu_core_count = 2
memory_size = 4
}
data "alicloud_images" "default" {
name_regex = "^ubuntu_18.*64"
most_recent = true
owners = "system"
}
resource "alicloud_vpc" "default" {
vpc_name = local.name
cidr_block = "172.16.0.0/16"
}
resource "alicloud_vswitch" "default" {
vpc_id = alicloud_vpc.default.id
cidr_block = "172.16.0.0/24"
zone_id = data.alicloud_zones.default.zones[0].id
vswitch_name = local.name
}
resource "alicloud_security_group" "default" {
name = local.name
vpc_id = alicloud_vpc.default.id
}
resource "alicloud_security_group_rule" "default" {
type = "ingress"
ip_protocol = "tcp"
nic_type = "intranet"
policy = "accept"
port_range = "22/22"
priority = 1
security_group_id = alicloud_security_group.default.id
cidr_ip = "172.16.0.0/24"
}
resource "alicloud_ess_scaling_group" "default" {
min_size = 1
max_size = 1
scaling_group_name = local.name
vswitch_ids = [alicloud_vswitch.default.id]
removal_policies = ["OldestInstance", "NewestInstance"]
}
resource "alicloud_ess_scaling_configuration" "default" {
scaling_group_id = alicloud_ess_scaling_group.default.id
image_id = data.alicloud_images.default.images[0].id
instance_type = data.alicloud_instance_types.default.instance_types[0].id
security_group_id = alicloud_security_group.default.id
force_delete = "true"
}
resource "alicloud_ess_scaling_rule" "default" {
scaling_group_id = alicloud_ess_scaling_group.default.id
adjustment_type = "TotalCapacity"
adjustment_value = 1
}
You can use to the existing autoscaling-rule module to create different type rules, alarm task and scheduled task one-click.
The following arguments are supported:
scaling_group_id
- (Required, ForceNew) ID of the scaling group of a scaling rule.adjustment_type
- (Optional) Adjustment mode of a scaling rule. Optional values:
adjustment_value
- (Optional) The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:
scaling_rule_name
- (Optional) Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _
, hypens -
, and decimal point .
. If this parameter value is not specified, the default value is scaling rule id. cooldown
- (Optional) The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.scaling_rule_type
- (Optional, ForceNew, Available since v1.58.0) The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule", "PredictiveScalingRule". Default to "SimpleScalingRule".estimated_instance_warmup
- (Optional, Available since v1.58.0) The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.min_adjustment_magnitude
- (Optional, Available since v1.221.0) The minimum number of instances that must be scaled. This parameter takes effect if you set ScalingRuleType to SimpleScalingRule or StepScalingRule, and AdjustmentType to PercentChangeInCapacity.scale_in_evaluation_count
- (Optional, Available since v1.221.0) The number of consecutive times that the event-triggered task created for scale-ins must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and associated with the target tracking scaling rule.scale_out_evaluation_count
- (Optional, Available since v1.221.0) The number of consecutive times that the event-triggered task created for scale-outs must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and associated with the target tracking scaling rule.metric_name
- (Optional, Available since v1.58.0) A CloudMonitor metric name.target_value
- (Optional, Available since v1.58.0) The target value for the metric.disable_scale_in
- (Optional, Available since v1.58.0) Indicates whether scale in by the target tracking policy is disabled. Default to false.step_adjustment
- (Optional, Available since v1.58.0) Steps for StepScalingRule. See step_adjustment
below.ari
- (Optional) The unique identifier of the scaling rule.alarm_dimension
- (Optional, ForceNew, Available since v1.216.0) AlarmDimension for StepScalingRule. See alarm_dimension
below.predictive_scaling_mode
- (Optional, Available since v1.222.0) The mode of the predictive scaling rule. Valid values: PredictAndScale, PredictOnly.initial_max_size
- (Optional, Available since v1.222.0) The maximum number of ECS instances that can be added to the scaling group. If you specify InitialMaxSize, you must also specify PredictiveValueBehavior.predictive_value_behavior
- (Optional, Available since v1.222.0) The action on the predicted maximum value. Valid values: MaxOverridePredictiveValue, PredictiveValueOverrideMax, PredictiveValueOverrideMaxWithBuffer.predictive_value_buffer
- (Optional, Available since v1.222.0) The ratio based on which the predicted value is increased if you set PredictiveValueBehavior to PredictiveValueOverrideMaxWithBuffer. If the predicted value increased by this ratio is greater than the initial maximum capacity, the increased value is used as the maximum value for prediction tasks. Valid values: 0 to 100.predictive_task_buffer_time
- (Optional, Available since v1.222.0) The amount of buffer time before the prediction task runs. By default, all prediction tasks that are automatically created by a predictive scaling rule run on the hour. You can specify a buffer time to run prediction tasks and prepare resources in advance. Valid values: 0 to 60. Unit: minutes.step_adjustment
The stepAdjustment mapping supports the following:
metric_interval_lower_bound
- (Optional) The lower bound of step.metric_interval_upper_bound
- (Optional) The upper bound of step.scaling_adjustment
- (Optional) The adjust value of step.alarm_dimension
The alarmDimension mapping supports the following:
dimension_key
- (Optional) The dimension key of the metric.dimension_value
- (Optional, ForceNew) The dimension value of the metric.The following attributes are exported:
id
- The scaling rule ID.ESS scaling rule can be imported using the id, e.g.
$ terraform import alicloud_ess_scaling_rule.example abc123456