alicloud_sae_application_scaling_rule
更新时间:
Provides a Serverless App Engine (SAE) Application Scaling Rule resource.
For information about Serverless App Engine (SAE) Application Scaling Rule and how to use it, see What is Application Scaling Rule.
-> NOTE: Available since v1.159.0.
Example Usage
Basic Usage
provider "alicloud" {
region = "cn-hangzhou"
}
variable "name" {
default = "tf-example"
}
data "alicloud_regions" "default" {
current = true
}
resource "random_integer" "default" {
max = 99999
min = 10000
}
data "alicloud_zones" "default" {
available_resource_creation = "VSwitch"
}
resource "alicloud_vpc" "default" {
vpc_name = var.name
cidr_block = "10.4.0.0/16"
}
resource "alicloud_vswitch" "default" {
vswitch_name = var.name
cidr_block = "10.4.0.0/24"
vpc_id = alicloud_vpc.default.id
zone_id = data.alicloud_zones.default.zones.0.id
}
resource "alicloud_security_group" "default" {
vpc_id = alicloud_vpc.default.id
}
resource "alicloud_sae_namespace" "default" {
namespace_id = "${data.alicloud_regions.default.regions.0.id}:example${random_integer.default.result}"
namespace_name = var.name
namespace_description = var.name
enable_micro_registration = false
}
resource "alicloud_sae_application" "default" {
app_description = var.name
app_name = "${var.name}-${random_integer.default.result}"
namespace_id = alicloud_sae_namespace.default.id
image_url = "registry-vpc.${data.alicloud_regions.default.regions.0.id}.aliyuncs.com/sae-demo-image/consumer:1.0"
package_type = "Image"
security_group_id = alicloud_security_group.default.id
vpc_id = alicloud_vpc.default.id
vswitch_id = alicloud_vswitch.default.id
timezone = "Asia/Beijing"
replicas = "5"
cpu = "500"
memory = "2048"
}
resource "alicloud_sae_application_scaling_rule" "default" {
app_id = alicloud_sae_application.default.id
scaling_rule_name = var.name
scaling_rule_enable = true
scaling_rule_type = "mix"
min_ready_instances = "3"
min_ready_instance_ratio = "-1"
scaling_rule_timer {
period = "* * *"
schedules {
at_time = "08:00"
max_replicas = 10
min_replicas = 3
}
schedules {
at_time = "20:00"
max_replicas = 50
min_replicas = 3
}
}
scaling_rule_metric {
max_replicas = 50
min_replicas = 3
metrics {
metric_type = "CPU"
metric_target_average_utilization = 20
}
metrics {
metric_type = "MEMORY"
metric_target_average_utilization = 30
}
metrics {
metric_type = "tcpActiveConn"
metric_target_average_utilization = 20
}
scale_up_rules {
step = 10
disabled = false
stabilization_window_seconds = 0
}
scale_down_rules {
step = 10
disabled = false
stabilization_window_seconds = 10
}
}
}
Argument Reference
The following arguments are supported:
app_id- (Required, ForceNew) Application ID.min_ready_instance_ratio- (Optional) The min ready instance ratio.min_ready_instances- (Optional) The min ready instances.scaling_rule_enable- (Optional) True whether the auto scaling policy is enabled. The value description is as follows: true: enabled state. false: disabled status. Valid values:false,true.scaling_rule_name- (Required, ForceNew) The name of a custom elastic scaling policy. In the application, the policy name cannot be repeated. It must start with a lowercase letter, and can only contain lowercase letters, numbers, and dashes (-), and no more than 32 characters. After the scaling policy is successfully created, the policy name cannot be modified.scaling_rule_type- (Required, ForceNew) Flexible strategy type. Valid values:mix,timingandmetric.scaling_rule_timer- (Optional) Configuration of Timing Resilient Policies. Seescaling_rule_timerbelow.scaling_rule_metric- (Optional) Monitor the configuration of the indicator elasticity strategy. Seescaling_rule_metricbelow.
scaling_rule_timer
The scaling_rule_timer supports the following:
begin_date- (Optional) The Start date. When thebegin_dateandend_datevalues are empty. it indicates long-term execution and is the default value.end_date- (Optional) The End Date. When thebegin_dateandend_datevalues are empty. it indicates long-term execution and is the default value.period- (Optional) The period in which a timed elastic scaling strategy is executed.schedules- (Optional) Resilient Scaling Strategy Trigger Timing. Seeschedulesbelow.
scaling_rule_timer-schedules
The schedules supports the following:
at_time- (Optional) Trigger point in time. When supporting format: minutes, for example:08:00.target_replicas- (Optional) This parameter can specify the number of instances to be applied or the minimum number of surviving instances per deployment. value range [1,50]. -> NOTE: The attribute is valid when the attributescaling_rule_typeistiming.max_replicas- (Optional) Maximum number of instances applied. -> NOTE: The attribute is valid when the attributescaling_rule_typeismix.min_replicas- (Optional) Minimum number of instances applied. -> NOTE: The attribute is valid when the attributescaling_rule_typeismix.
scaling_rule_metric
The scaling_rule_metric supports the following:
max_replicas- (Optional) Maximum number of instances applied.min_replicas- (Optional) Minimum number of instances applied.metrics- (Optional) Indicator rule configuration. Seemetricsbelow.scale_up_rules- (Optional) Apply expansion rules. Seescale_up_rulesbelow.scale_down_rules- (Optional) Apply shrink rules. Seescale_down_rulesbelow.
scaling_rule_metric-scale_up_rules
The scale_up_rules supports the following:
step- (Optional) Elastic expansion or contraction step size. the maximum number of instances to be scaled in per unit time.stabilization_window_seconds- (Optional) Cooling time for expansion or contraction. Valid values:0to3600. Unit: seconds. The default is0seconds.disabled- (Optional) Whether shrinkage is prohibited.
scaling_rule_metric-scale_down_rules
The scale_down_rules supports the following:
step- (Optional) Elastic expansion or contraction step size. the maximum number of instances to be scaled in per unit time.stabilization_window_seconds- (Optional) Cooling time for expansion or contraction. Valid values:0to3600. Unit: seconds. The default is0seconds.disabled- (Optional) Whether shrinkage is prohibited.
scaling_rule_metric-metrics
The metrics supports the following:
metric_target_average_utilization- (Optional) According to differentmetric_type, set the target value of the corresponding monitoring index.metric_type- (Optional) Monitoring indicator trigger condition. Valid values:CPU,MEMORY,tcpActiveConn,QPS,RT,SLB_QPS,SLB_RT,INTRANET_SLB_QPSandINTRANET_SLB_RT. The values are described as follows:- CPU: CPU usage.
- MEMORY: MEMORY usage.
- tcpActiveConn: The average number of TCP active connections for a single instance in 30 seconds.
- QPS: The average QPS of a single instance within 1 minute of JAVA application.
- RT: The average response time of all service interfaces within 1 minute of JAVA application.
- SLB_QPS: The average public network SLB QPS of a single instance within 15 seconds.
- SLB_RT: The average response time of public network SLB within 15 seconds.
- INTRANET_SLB_QPS: The average private network SLB QPS of a single instance within 15 seconds.
- INTRANET_SLB_RT: The average response time of private network SLB within 15 seconds.
NOTE: From version 1.206.0,
metric_typecan be set toQPS,RT,INTRANET_SLB_QPS,INTRANET_SLB_RT.
slb_id- (Optional, Available in 1.206.0+) SLB ID.slb_project- (Optional, Available in 1.206.0+) The project of the Log Service.slb_log_store- (Optional, Available in 1.206.0+) The log store of the Log Service.vport- (Optional, Available in 1.206.0+) SLB listening port.
Attributes Reference
The following attributes are exported:
id- The resource ID of Application Scaling Rule. The value formats as<app_id>:<scaling_rule_name>.
Import
Serverless App Engine (SAE) Application Scaling Rule can be imported using the id, e.g.
$ terraform import alicloud_sae_application_scaling_rule.example <app_id>:<scaling_rule_name>
该文章对您有帮助吗?