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
,timing
andmetric
.scaling_rule_timer
- (Optional) Configuration of Timing Resilient Policies. Seescaling_rule_timer
below.scaling_rule_metric
- (Optional) Monitor the configuration of the indicator elasticity strategy. Seescaling_rule_metric
below.
scaling_rule_timer
The scaling_rule_timer supports the following:
begin_date
- (Optional) The Start date. When thebegin_date
andend_date
values are empty. it indicates long-term execution and is the default value.end_date
- (Optional) The End Date. When thebegin_date
andend_date
values 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. Seeschedules
below.
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_type
istiming
.max_replicas
- (Optional) Maximum number of instances applied. -> NOTE: The attribute is valid when the attributescaling_rule_type
ismix
.min_replicas
- (Optional) Minimum number of instances applied. -> NOTE: The attribute is valid when the attributescaling_rule_type
ismix
.
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. Seemetrics
below.scale_up_rules
- (Optional) Apply expansion rules. Seescale_up_rules
below.scale_down_rules
- (Optional) Apply shrink rules. Seescale_down_rules
below.
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:0
to3600
. Unit: seconds. The default is0
seconds.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:0
to3600
. Unit: seconds. The default is0
seconds.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_QPS
andINTRANET_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_type
can 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>
文档内容是否对您有帮助?