La función de una regla de escalado está determinada por su tipo, que se puede utilizar para activar una actividad de escalado o establecer de manera inteligente los valores límite de un grupo de escalado. Según sus requisitos empresariales, puede invocar la API CreateScalingRule para crear diferentes tipos de reglas de escalado. Por ejemplo, si su negocio solo requiere establecer los valores límite de un grupo de escalado, le recomendamos seleccionar el tipo de regla predictiva.
Descripción de la operación
Una regla de escalado define operaciones específicas de escalado horizontal o vertical, como agregar o eliminar N instancias. Si la ejecución de una regla de escalado provocara que el número de instancias ECS o ECI en el grupo de escalado cayera por debajo de MinSize o excediera MaxSize, el escalado automático ajusta automáticamente el número de instancias ECS o ECI que se deben agregar o eliminar para que el recuento real de instancias alcance MinSize o MaxSize. Sin embargo, el valor configurado de la regla de escalado permanece sin cambios. A continuación, se presentan algunos ejemplos:
Para un grupo de escalado con MaxSize=3 y una capacidad total actual de 2, si la regla de escalado especifica agregar 3 instancias ECS, en realidad solo se agregará 1 instancia ECS durante la ejecución, pero el valor configurado de la regla de escalado seguirá siendo 3.
Para un grupo de escalado con MinSize=2 y una capacidad total actual de 3, si la regla de escalado especifica eliminar 5 instancias ECS, en realidad solo se eliminará 1 instancia ECS durante la ejecución, pero el valor configurado de la regla de escalado seguirá siendo 5.
Tenga en cuenta las siguientes descripciones relacionadas con los parámetros:
Cuando AdjustmentType es TotalCapacity, significa ajustar el número actual de instancias ECS o ECI en el grupo de escalado a la cantidad especificada. El AdjustmentValue correspondiente debe ser mayor o igual a 0.
Cuando AdjustmentType es QuantityChangeInCapacity o PercentChangeInCapacity, un AdjustmentValue positivo indica agregar instancias, mientras que un valor negativo indica eliminar instancias.
Cuando AdjustmentType es PercentChangeInCapacity, el servicio de escalado automático calcula el número de instancias ECS o ECI que se deben agregar o eliminar multiplicando el recuento actual de instancias (capacidad total) por AdjustmentValue/100 y aplicando luego el redondeo.
Si se especifica un tiempo de enfriamiento (Cooldown) en la regla de escalado, el grupo de escalado entra en un periodo de enfriamiento durante la duración especificada después de que finaliza la actividad de escalado activada por esta regla. Si no se especifica un tiempo de enfriamiento en la regla de escalado, se utiliza el tiempo de enfriamiento predeterminado (DefaultCooldown) del grupo de escalado.
Existe un límite en el número de reglas de escalado que se pueden crear dentro de un solo grupo de escalado. Para obtener más información, consulte Límites.
- El identificador único devuelto (ScalingRuleAri) de la regla de escalado se puede utilizar con las siguientes API:
Especifíquelo en el parámetro ScalingRuleAri al invocar ExecuteScalingRule para ejecutar manualmente la regla de escalado.
Especifíquelo en el parámetro ScheduledAction al crear una tarea programada (CreateScheduledTask) para ejecutar la regla de escalado a una hora programada.
Pruébelo ahora
Test
Autorización de RAM
|
Action |
Nivel de acceso |
Tipo de recurso |
Clave de condición |
Acción dependiente |
|
ess:CreateScalingRule |
create |
*ScalingGroup
|
Ninguna | Ninguna |
Parámetros de la solicitud
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
Ejemplo |
| ScalingGroupId |
string |
Sí |
El ID del grupo de escalado al que pertenece la regla de escalado. |
asg-bp1ffogfdauy0jw0**** |
| ScalingRuleName |
string |
No |
El nombre de la regla de escalado. El nombre debe tener entre 2 y 64 caracteres de longitud, y puede contener letras, dígitos, guiones bajos (_), guiones (-) y puntos (.). El nombre debe comenzar con una letra o un dígito. El nombre de cada regla de escalado debe ser único bajo la misma cuenta dentro de una región. Si deja este parámetro vacío, se utiliza el ID de la regla de escalado. |
scalingrule**** |
| Cooldown |
integer |
No |
El tiempo de enfriamiento de la regla de escalado. Este parámetro está disponible solo si establece el parámetro ScalingRuleType en SimpleScalingRule. Valores válidos: 0 a 86400. Unidad: segundos. De forma predeterminada, este parámetro se deja vacío. |
60 |
| MinAdjustmentMagnitude |
integer |
No |
El número mínimo de instancias que se deben escalar cuando el parámetro AdjustmentType se establece en PercentChangeInCapacity. Este parámetro surte efecto solo si establece el parámetro ScalingRuleType en SimpleScalingRule o StepScalingRule. |
1 |
| AdjustmentType |
string |
No |
El método de escalado de la regla de escalado. Este parámetro es obligatorio solo si establece el parámetro ScalingRuleType en SimpleScalingRule o StepScalingRule. Valores válidos:
|
QuantityChangeInCapacity |
| AdjustmentValue |
integer |
No |
El número de instancias que se deben escalar según la regla de escalado. Este parámetro es obligatorio solo si establece el parámetro ScalingRuleType en SimpleScalingRule o StepScalingRule. El número de instancias ECS que se escalan en una sola actividad de escalado no puede exceder 1,000.
|
100 |
| ScalingRuleType |
string |
No |
El tipo de regla de escalado. Valores válidos:
Valor predeterminado: SimpleScalingRule. |
SimpleScalingRule |
| EstimatedInstanceWarmup |
integer |
No |
El periodo de calentamiento de una instancia. Este parámetro está disponible solo si establece el parámetro ScalingRuleType en TargetTrackingScalingRule o PredictiveScalingRule. Auto Scaling agrega instancias ECS que están en estado de calentamiento a un grupo de escalado, pero no reporta datos de monitoreo a CloudMonitor durante el periodo de calentamiento. Nota
Auto Scaling calcula el número de instancias ECS que se deben escalar. Las instancias ECS en estado de calentamiento no se cuentan para la capacidad actual del grupo de escalado. Valores válidos: 0 a 86400. Unidad: segundos. Valor predeterminado: 300. |
300 |
| MetricName |
string |
No |
La métrica predefinida que desea monitorear. Si establece ScalingRuleType en TargetTrackingScalingRule o PredictiveScalingRule, debe especificar este parámetro. Valores válidos si establece ScalingRuleType en TargetTrackingScalingRule:
Valores válidos si establece ScalingRuleType en PredictiveScalingRule:
Para obtener más información, consulte Tareas activadas por eventos del tipo de monitoreo del sistema. |
CpuUtilization |
| TargetValue |
number |
No |
El valor objetivo. Este parámetro es obligatorio solo si establece el parámetro ScalingRuleType en TargetTrackingScalingRule o PredictiveScalingRule. El valor debe ser mayor que 0 y puede tener hasta tres decimales. |
0.125 |
| DisableScaleIn |
boolean |
No |
Especifica si se debe deshabilitar el escalado vertical. Este parámetro está disponible solo si establece ScalingRuleType en TargetTrackingScalingRule. Valor predeterminado: false. |
false |
| ScaleInEvaluationCount |
integer |
No |
El número de veces consecutivas que la tarea activada por eventos creada para actividades de escalado vertical debe cumplir las condiciones de umbral antes de que se active una alerta. Después de crear una regla de escalado de seguimiento de objetivo, se crea automáticamente una tarea activada por eventos y luego se asocia con la regla de escalado de seguimiento de objetivo. Valor predeterminado: 15. |
15 |
| ScaleOutEvaluationCount |
integer |
No |
El número de veces consecutivas que la tarea activada por eventos creada para actividades de escalado horizontal debe cumplir las condiciones de umbral antes de que se active una alerta. Después de crear una regla de escalado de seguimiento de objetivo, se crea automáticamente una tarea activada por eventos y luego se asocia con la regla de escalado de seguimiento de objetivo. Valor predeterminado: 3. |
3 |
| PredictiveScalingMode |
string |
No |
El modo de la regla de escalado predictivo. Valores válidos:
Valor predeterminado: PredictAndScale. |
PredictAndScale |
| PredictiveValueBehavior |
string |
No |
El valor máximo para las tareas de predicción. Valores válidos:
Valor predeterminado: MaxOverridePredictiveValue. |
MaxOverridePredictiveValue |
| PredictiveValueBuffer |
integer |
No |
La proporción según la cual se aumenta el valor predicho cuando establece Valor predeterminado: 0. |
50 |
| PredictiveTaskBufferTime |
integer |
No |
La cantidad de tiempo de búfer antes de que se ejecute la tarea de predicción. De forma predeterminada, todas las tareas de predicción que se crean automáticamente para una regla de escalado predictivo se ejecutan en punto. Puede especificar una cantidad de tiempo de búfer para la preparación de recursos antes de que se ejecuten las tareas de predicción. Valores válidos: 0 a 60. Unidad: minutos. Valor predeterminado: 0. |
30 |
| InitialMaxSize |
integer |
No |
El número máximo de instancias ECS que puede contener el grupo de escalado. Si especifica InitialMaxSize, debe especificar El valor predeterminado de este parámetro es el valor de MaxSize. |
100 |
| StepAdjustments |
array<object> |
No |
Detalles de los ajustes por pasos. |
|
|
object |
No |
Detalles de los ajustes por pasos. |
||
| MetricIntervalUpperBound |
number |
No |
El límite superior especificado en un ajuste por pasos. Valores válidos: -9.999999E18 a 9.999999E18. |
5.0 |
| ScalingAdjustment |
integer |
No |
El número de instancias ECS que desea escalar en un ajuste por pasos. Este parámetro está disponible solo si establece el parámetro ScalingRuleType en StepScalingRule. |
1 |
| MetricIntervalLowerBound |
number |
No |
El límite inferior especificado en un ajuste por pasos. Este parámetro está disponible solo si establece el parámetro ScalingRuleType en StepScalingRule. Valores válidos: -9.999999E18 a 9.999999E18. |
1.0 |
| RegionId |
string |
No |
El ID de la región del grupo de escalado. |
cn-hangzhou |
| AlarmDimensions |
array<object> |
No |
Las dimensiones de la métrica. Este parámetro es aplicable a las reglas de escalado de seguimiento de objetivo. Si su métrica predefinida requiere dimensiones adicionales, debe especificar este parámetro. Por ejemplo, si utiliza LoadBalancerRealServerAverageQps como métrica predefinida, debe usar este parámetro para especificar la dimensión rulePool. |
|
|
object |
No |
Valores de información de dimensión para métricas de monitoreo. Este parámetro se aplica a las reglas de seguimiento de objetivo y se utiliza cuando se requiere información de dimensión adicional para una métrica. Por ejemplo, la métrica LoadBalancerRealServerAverageQps requiere especificar el par clave-valor de dimensión rulePool. |
||
| DimensionKey |
string |
No |
La clave de dimensión de la métrica. |
rulePool |
| DimensionValue |
string |
No |
El valor de dimensión de la métrica. |
sgp-l1cbirz451yxuxxx |
| MetricType |
string |
No |
El tipo de métrica. Valores válidos:
|
system |
| HybridMonitorNamespace |
string |
No |
El ID del espacio de nombres de Monitoreo de Nube Híbrida. Para obtener información sobre cómo administrar espacios de nombres de Monitoreo de Nube Híbrida, consulte Administrar espacios de nombres. |
aliyun-test |
| HybridMetrics |
array<object> |
No |
Las métricas de Monitoreo de Nube Híbrida. Para obtener más información, consulte Crear una regla de escalado de seguimiento de objetivo personalizada. |
|
|
array<object> |
No |
|||
| Id |
string |
No |
El ID de referencia de la métrica en la expresión de la métrica. |
a |
| Expression |
string |
No |
La expresión de la métrica que consta de múltiples métricas de Monitoreo de Nube Híbrida. Calcula un resultado utilizado para activar eventos de escalado. La expresión debe escribirse en formato de Notación Polaca Inversa (RPN) y solo admite los siguientes operadores: |
(a+b)/2 |
| MetricName |
string |
No |
El nombre de la métrica de Monitoreo de Nube Híbrida. |
AliyunSmq_NumberOfMessagesVisible |
| Statistic |
string |
No |
El método estadístico del valor de la métrica. Valores válidos:
|
Average |
| Dimensions |
array<object> |
No |
Las dimensiones de la métrica. Puede utilizar este parámetro para especificar los recursos monitoreados. |
|
|
object |
No |
|||
| DimensionKey |
string |
No |
La clave de la dimensión de la métrica. |
queue |
| DimensionValue |
string |
No |
El valor de la dimensión de la métrica. |
testQueue |
| AlarmOptions |
object |
No |
Definición de propiedades de alerta. |
|
| Period |
integer |
No |
El periodo para agregar datos de métricas de monitoreo en una regla de seguimiento de objetivo, en segundos. Valores válidos:
Nota
Valor predeterminado: 60. |
60 |
Elementos de la respuesta
|
Elemento |
Tipo |
Descripción |
Ejemplo |
|
object |
|||
| ScalingRuleAri |
string |
El identificador único de la regla de escalado. |
ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7**** |
| RequestId |
string |
El ID de la solicitud. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
| ScalingRuleId |
string |
El ID de la regla de escalado, que es generado por el sistema y es único a nivel global. |
asr-bp1dvirgwkoowxk7**** |
Ejemplos
Respuesta exitosa
JSON Formato
{
"ScalingRuleAri": "ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"ScalingRuleId": "asr-bp1dvirgwkoowxk7****"
}
Códigos de error
Consulte Códigos de error para ver la lista completa.
Notas de la versión
Consulte Notas de la versión para ver la lista completa.