A função de uma regra de escalonamento é determinada pelo seu tipo, que pode ser usado para acionar uma atividade de escalonamento ou definir inteligentemente os limites de um grupo de escalonamento. Dependendo dos seus requisitos de negócios, você pode invocar a API CreateScalingRule para criar diferentes tipos de regras de escalonamento. Por exemplo, se o seu negócio exigir apenas a definição dos limites de um grupo de escalonamento, recomendamos que você selecione o tipo de regra de escalonamento preditivo.
Descrição da operação
Uma regra de escalonamento define operações específicas de scale-out ou scale-in, como adicionar ou remover N instâncias. Se a execução de uma regra de escalonamento fizer com que o número de instâncias ECS ou ECI no grupo de escalonamento fique abaixo de MinSize ou exceda MaxSize, o Auto Scaling ajustará automaticamente o número de instâncias ECS ou ECI a serem adicionadas ou removidas para que a contagem real de instâncias atinja MinSize ou MaxSize. No entanto, o valor configurado da regra de escalonamento permanece inalterado. Os exemplos são os seguintes:
Para um grupo de escalonamento com MaxSize=3 e uma capacidade total atual de 2, se a regra de escalonamento especificar a adição de 3 instâncias ECS, apenas 1 instância ECS será realmente adicionada durante a execução, mas o valor configurado da regra de escalonamento permanece 3.
Para um grupo de escalonamento com MinSize=2 e uma capacidade total atual de 3, se a regra de escalonamento especificar a remoção de 5 instâncias ECS, apenas 1 instância ECS será realmente removida durante a execução, mas o valor configurado da regra de escalonamento permanece 5.
Observe as seguintes descrições relacionadas aos parâmetros:
Quando AdjustmentType é TotalCapacity, significa ajustar o número atual de instâncias ECS ou ECI no grupo de escalonamento para a quantidade especificada. O AdjustmentValue correspondente deve ser maior ou igual a 0.
Quando AdjustmentType é QuantityChangeInCapacity ou PercentChangeInCapacity, um AdjustmentValue positivo indica a adição de instâncias, enquanto um valor negativo indica a remoção de instâncias.
Quando AdjustmentType é PercentChangeInCapacity, o Auto Scaling calcula o número de instâncias ECS ou ECI a serem adicionadas ou removidas multiplicando a contagem atual de instâncias (capacidade total) por AdjustmentValue/100 e, em seguida, aplicando o arredondamento.
Se um tempo de espera (Cooldown) for especificado na regra de escalonamento, o grupo de escalonamento entrará em um período de espera pela duração especificada após a conclusão da atividade de escalonamento acionada por esta regra. Se nenhum tempo de espera for especificado na regra de escalonamento, o tempo de espera padrão (DefaultCooldown) do grupo de escalonamento será usado.
Há um limite para o número de regras de escalonamento que podem ser criadas dentro de um único grupo de escalonamento. Para obter detalhes, consulte Limites.
- O Identificador Único (ScalingRuleAri) retornado da regra de escalonamento pode ser usado com as seguintes APIs:
Especifique-o no parâmetro ScalingRuleAri ao invocar ExecuteScalingRule para executar manualmente a regra de escalonamento.
Especifique-o no parâmetro ScheduledAction ao criar uma tarefa agendada (CreateScheduledTask) para executar a regra de escalonamento em um horário agendado.
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
ess:CreateScalingRule |
create |
*ScalingGroup
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| ScalingGroupId |
string |
Sim |
O ID do grupo de escalonamento ao qual a regra de escalonamento pertence. |
asg-bp1ffogfdauy0jw0**** |
| ScalingRuleName |
string |
Não |
O nome da regra de escalonamento. O nome deve ter de 2 a 64 caracteres e pode conter letras, dígitos, sublinhados (_), hifens (-) e pontos (.). O nome deve começar com uma letra ou um dígito. O nome de cada regra de escalonamento deve ser exclusivo na mesma conta dentro de uma região. Se você deixar este parâmetro vazio, o ID da regra de escalonamento será usado. |
scalingrule**** |
| Cooldown |
integer |
Não |
O tempo de espera da regra de escalonamento. Este parâmetro está disponível apenas se você definir o parâmetro ScalingRuleType como SimpleScalingRule. Valores válidos: 0 a 86400. Unidade: segundos. Por padrão, este parâmetro é deixado vazio. |
60 |
| MinAdjustmentMagnitude |
integer |
Não |
O número mínimo de instâncias que devem ser escalonadas quando o parâmetro AdjustmentType está definido como PercentChangeInCapacity. Este parâmetro só entra em vigor se você definir o parâmetro ScalingRuleType como SimpleScalingRule ou StepScalingRule. |
1 |
| AdjustmentType |
string |
Não |
O método de escalonamento da regra de escalonamento. Este parâmetro é obrigatório apenas se você definir o parâmetro ScalingRuleType como SimpleScalingRule ou StepScalingRule. Valores válidos:
|
QuantityChangeInCapacity |
| AdjustmentValue |
integer |
Não |
O número de instâncias que devem ser escalonadas com base na regra de escalonamento. Este parâmetro é obrigatório apenas se você definir o parâmetro ScalingRuleType como SimpleScalingRule ou StepScalingRule. O número de instâncias ECS que são escalonadas em uma única atividade de escalonamento não pode exceder 1.000.
|
100 |
| ScalingRuleType |
string |
Não |
O tipo da regra de escalonamento. Valores válidos:
Valor padrão: SimpleScalingRule. |
SimpleScalingRule |
| EstimatedInstanceWarmup |
integer |
Não |
O período de aquecimento de uma instância. Este parâmetro está disponível apenas se você definir o parâmetro ScalingRuleType como TargetTrackingScalingRule ou PredictiveScalingRule. O Auto Scaling adiciona instâncias ECS que estão no estado de aquecimento a um grupo de escalonamento, mas não relata dados de monitoramento ao CloudMonitor durante o período de aquecimento. Nota
O Auto Scaling calcula o número de instâncias ECS que devem ser escalonadas. As instâncias ECS no estado de aquecimento não são contadas para a capacidade atual do grupo de escalonamento. Valores válidos: 0 a 86400. Unidade: segundos. Valor padrão: 300. |
300 |
| MetricName |
string |
Não |
A métrica predefinida que você deseja monitorar. Se você definir ScalingRuleType como TargetTrackingScalingRule ou PredictiveScalingRule, deverá especificar este parâmetro. Valores válidos se você definir ScalingRuleType como TargetTrackingScalingRule:
Valores válidos se você definir ScalingRuleType como PredictiveScalingRule:
Para obter mais informações, consulte Tarefas acionadas por eventos do tipo de monitoramento do sistema. |
CpuUtilization |
| TargetValue |
number |
Não |
O valor de destino. Este parâmetro é obrigatório apenas se você definir o parâmetro ScalingRuleType como TargetTrackingScalingRule ou PredictiveScalingRule. O valor deve ser maior que 0 e pode ter até três casas decimais. |
0.125 |
| DisableScaleIn |
boolean |
Não |
Especifica se deve desativar o scale-in. Este parâmetro está disponível apenas se você definir ScalingRuleType como TargetTrackingScalingRule. Valor padrão: false. |
false |
| ScaleInEvaluationCount |
integer |
Não |
O número de vezes consecutivas que a tarefa acionada por evento criada para atividades de scale-in deve atender às condições de limite antes que um alerta seja acionado. Depois que uma regra de escalonamento de rastreamento de destino é criada, uma tarefa acionada por evento é criada automaticamente e, em seguida, associada à regra de escalonamento de rastreamento de destino. Valor padrão: 15. |
15 |
| ScaleOutEvaluationCount |
integer |
Não |
O número de vezes consecutivas que a tarefa acionada por evento criada para atividades de scale-out deve atender às condições de limite antes que um alerta seja acionado. Depois que uma regra de escalonamento de rastreamento de destino é criada, uma tarefa acionada por evento é criada automaticamente e, em seguida, associada à regra de escalonamento de rastreamento de destino. Valor padrão: 3. |
3 |
| PredictiveScalingMode |
string |
Não |
O modo da regra de escalonamento preditivo. Valores válidos:
Valor padrão: PredictAndScale. |
PredictAndScale |
| PredictiveValueBehavior |
string |
Não |
O valor máximo para tarefas de previsão. Valores válidos:
Valor padrão: MaxOverridePredictiveValue. |
MaxOverridePredictiveValue |
| PredictiveValueBuffer |
integer |
Não |
A proporção com base na qual o valor previsto é aumentado quando você define Valor padrão: 0. |
50 |
| PredictiveTaskBufferTime |
integer |
Não |
A quantidade de tempo de buffer antes da execução da tarefa de previsão. Por padrão, todas as tarefas de previsão que são criadas automaticamente para uma regra de escalonamento preditivo são executadas na hora cheia. Você pode especificar uma quantidade de tempo de buffer para preparação de recursos antes que as tarefas de previsão sejam executadas. Valores válidos: 0 a 60. Unidade: minutos. Valor padrão: 0. |
30 |
| InitialMaxSize |
integer |
Não |
O número máximo de instâncias ECS que podem ser contidas no grupo de escalonamento. Se você especificar InitialMaxSize, deverá especificar O valor padrão deste parâmetro é o valor de MaxSize. |
100 |
| StepAdjustments |
array<object> |
Não |
Detalhes dos ajustes em etapas. |
|
|
object |
Não |
Detalhes dos ajustes em etapas. |
||
| MetricIntervalUpperBound |
number |
Não |
O limite superior especificado em um ajuste de etapa. Valores válidos: -9.999999E18 a 9.999999E18. |
5.0 |
| ScalingAdjustment |
integer |
Não |
O número de instâncias ECS que você deseja escalonar em um ajuste de etapa. Este parâmetro está disponível apenas se você definir o parâmetro ScalingRuleType como StepScalingRule. |
1 |
| MetricIntervalLowerBound |
number |
Não |
O limite inferior especificado em um ajuste de etapa. Este parâmetro está disponível apenas se você definir o parâmetro ScalingRuleType como StepScalingRule. Valores válidos: -9.999999E18 a 9.999999E18. |
1.0 |
| RegionId |
string |
Não |
O ID da região do grupo de escalonamento. |
cn-hangzhou |
| AlarmDimensions |
array<object> |
Não |
As dimensões da métrica. Este parâmetro é aplicável a regras de escalonamento de rastreamento de destino. Se sua métrica predefinida exigir dimensões extras, você deverá especificar este parâmetro. Por exemplo, se você usar LoadBalancerRealServerAverageQps como sua métrica predefinida, deverá usar este parâmetro para especificar a dimensão rulePool. |
|
|
object |
Não |
Valores de informações de dimensão para métricas de monitoramento. Este parâmetro se aplica a regras de rastreamento de destino e é usado quando informações de dimensão adicionais são necessárias para uma métrica. Por exemplo, a métrica LoadBalancerRealServerAverageQps requer a especificação do par chave-valor da dimensão rulePool. |
||
| DimensionKey |
string |
Não |
A chave de dimensão da métrica. |
rulePool |
| DimensionValue |
string |
Não |
O valor de dimensão da métrica. |
sgp-l1cbirz451yxuxxx |
| MetricType |
string |
Não |
O tipo de métrica. Valores válidos:
|
system |
| HybridMonitorNamespace |
string |
Não |
O ID do namespace do Hybrid Cloud Monitoring. Para obter informações sobre como gerenciar namespaces do Hybrid Cloud Monitoring, consulte Gerenciar namespaces. |
aliyun-test |
| HybridMetrics |
array<object> |
Não |
As métricas do Hybrid Cloud Monitoring. Para obter mais informações, consulte Criar uma regra de escalonamento de rastreamento de destino personalizada. |
|
|
array<object> |
Não |
|||
| Id |
string |
Não |
O ID de referência da métrica na expressão da métrica. |
a |
| Expression |
string |
Não |
A expressão da métrica que consiste em várias métricas do Hybrid Cloud Monitoring. Ela calcula um resultado usado para acionar eventos de escalonamento. A expressão deve ser escrita no formato de Notação Polonesa Reversa (RPN) e suporta apenas os seguintes operadores: |
(a+b)/2 |
| MetricName |
string |
Não |
O nome da métrica do Hybrid Cloud Monitoring. |
AliyunSmq_NumberOfMessagesVisible |
| Statistic |
string |
Não |
O método estatístico do valor da métrica. Valores válidos:
|
Average |
| Dimensions |
array<object> |
Não |
As dimensões da métrica. Você pode usar este parâmetro para especificar os recursos monitorados. |
|
|
object |
Não |
|||
| DimensionKey |
string |
Não |
A chave da dimensão da métrica. |
queue |
| DimensionValue |
string |
Não |
O valor da dimensão da métrica. |
testQueue |
| AlarmOptions |
object |
Não |
Definição das propriedades de alerta. |
|
| Period |
integer |
Não |
O período para agregação de dados de métricas de monitoramento em uma regra de rastreamento de destino, em segundos. Valores válidos:
Nota
Valor padrão: 60. |
60 |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| ScalingRuleAri |
string |
O identificador exclusivo da regra de escalonamento. |
ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7**** |
| RequestId |
string |
O ID da solicitação. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
| ScalingRuleId |
string |
O ID da regra de escalonamento, que é gerado pelo sistema e é globalmente exclusivo. |
asr-bp1dvirgwkoowxk7**** |
Exemplos
Resposta de sucesso
JSON formato
{
"ScalingRuleAri": "ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"ScalingRuleId": "asr-bp1dvirgwkoowxk7****"
}
Códigos de erro
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.