Os lifecycle hooks pausam as atividades do Auto Scaling e colocam instâncias ECS ou ECI em estado pendente, permitindo a execução de ações personalizadas, como instalar software. A atividade de dimensionamento é retomada após o tempo limite do hook expirar.
Pré-requisitos
Crie um grupo de dimensionamento. Para mais informações, consulte Configurar um grupo de dimensionamento ou CreateScalingGroup.
-
(Opcional) Para receber notificações MNS quando um lifecycle hook for acionado, crie previamente um tópico ou uma fila MNS. Para mais informações, consulte os seguintes tópicos:
Crie um lifecycle hook
É possível criar até 10 lifecycle hooks por grupo de dimensionamento. Para mais informações, consulte Visão geral dos lifecycle hooks.
Acesse o Auto Scaling console.
No painel de navegação à esquerda, clique em Scaling Groups.
Na barra de navegação superior, selecione uma região.
-
Localize o grupo de dimensionamento desejado e abra sua página de detalhes de uma das seguintes formas:
Na coluna Scaling Group Name/ID, clique no ID do grupo de dimensionamento.
Na coluna Actions, clique em Details.
No topo da página, clique na aba Event and adhesive hook.
Clique em Create Lifecycle Hook.
-
Na página Create Lifecycle Hook, configure o lifecycle hook.
A tabela a seguir descreve os parâmetros de um lifecycle hook.
Parâmetro
Descrição
Name
Nome do lifecycle hook. Não pode ser alterado após a criação. Deve ter entre 2 e 64 caracteres e começar com uma letra, dígito ou caractere chinês. Pode conter pontos (.), sublinhados (_) e hifens (-).
Scaling Activity Type
Tipo de atividade de dimensionamento que aciona o lifecycle hook. Valores válidos:
-
Scale-In
-
Scale-Out
Timeout Period
Tempo limite do lifecycle hook, em segundos. Valores válidos: 30 a 21600 (6 horas). Valor padrão: 1800.
NotaDefina o tempo limite com base na duração necessária para processar o lifecycle hook. Se o processamento exceder esse prazo, o sistema executa a ação especificada em Default Execution Policy.
Default Execution Policy
Cenário com um único lifecycle hook
Ação executada depois que uma instância sai do estado pendente. Valores válidos:
-
Continue: Durante uma atividade de scale-out, o Auto Scaling continua adicionando a nova instância ECS ou ECI ao grupo de dimensionamento. Em uma atividade de scale-in, o Auto Scaling continua removendo a instância ECS ou ECI do grupo e, em seguida, a libera.
-
Reject: Durante uma atividade de scale-out, o Auto Scaling libera a nova instância ECS ou ECI sem adicioná-la ao grupo de dimensionamento. Durante uma atividade de scale-in, o Auto Scaling desanexa a instância ECS ou ECI do grupo, mas não a libera.
-
Roll Back: Durante uma atividade de scale-out, o Auto Scaling libera a nova instância ECS ou ECI sem adicioná-la ao grupo de dimensionamento. Durante uma atividade de scale-in, o Auto Scaling readiciona a instância ECS ou ECI removida ao grupo de dimensionamento.
Cenário com múltiplos lifecycle hooks
Se vários lifecycle hooks forem acionados para a mesma atividade de dimensionamento, o resultado final dependerá do Scaling Activity Type definido para cada hook.
-
Atividade de scale-in: Quando o estado de espera de um lifecycle hook com política Continue termina, o sistema aguarda a conclusão dos lifecycle hooks restantes. Se algum desses hooks finalizar com uma política de execução Reject ou Roll Back, o sistema encerra imediatamente o estado de espera e define a política de quaisquer hooks não concluídos como a política de execução padrão. Uma reversão é iniciada para interromper a atividade de scale-in apenas se um hook concluído tiver a política Roll Back. Se um hook concluído tiver a política Reject, a atividade de scale-in continua.
-
Atividade de scale-out: A atividade prossegue somente se todos os lifecycle hooks forem concluídos com uma política de execução Continue. Se qualquer lifecycle hook for concluído com uma política de execução Reject ou Roll Back, o sistema para de aguardar os hooks incompletos restantes, cancela o scale-out e inicia uma reversão (para atividades de scale-out, as políticas "Rollback" e "Reject" têm o mesmo efeito).
(Opcional) Cenário com modelo OOS como método de notificação
Aplica-se apenas quando o lifecycle hook utiliza um modelo OOS como método de notificação. Se a execução do modelo OOS terminar antes que o estado pendente atinja o tempo limite, a próxima ação dependerá do resultado da execução:
-
Sucesso: Em uma atividade de scale-out, a instância é adicionada ao grupo de dimensionamento. Em uma atividade de scale-in, a instância deixa de atender tráfego no grupo de dimensionamento.
-
Falha: Em uma atividade de scale-out, a instância é liberada. Em uma atividade de scale-in, a instância deixa de atender tráfego no grupo de dimensionamento.
A forma como uma instância deixa de atender tráfego depende das seguintes condições:
-
Se a instância for gerenciada pelo grupo de dimensionamento e o Instance Reclaim Mode do grupo estiver definido como Release, a instância será removida do grupo de dimensionamento e liberada.
-
Se a instância for gerenciada pelo grupo de dimensionamento e o Instance Reclaim Mode do grupo estiver definido como Economical Mode, a instância será parada dentro do grupo e alguns de seus recursos serão retidos. Para mais informações, consulte Configurar um grupo de dimensionamento.
-
Se a instância foi adicionada manualmente, mas não é gerenciada pelo grupo de dimensionamento, ela será apenas removida do grupo e continuará em execução.
Send Notification When Lifecycle Hook Takes Effect
Método usado para enviar notificações ou executar ações quando um lifecycle hook é acionado. Valores válidos:
-
No Notification: Esta é a opção padrão.
-
MNS Topic: Selecione um tópico MNS. É possível especificar um identificador de notificação que o Auto Scaling inclui em cada mensagem para ajudar na categorização das notificações.
-
MNS Queue: Selecione uma fila MNS. É possível especificar um identificador de notificação que o Auto Scaling inclui em cada mensagem para ajudar na categorização das notificações.
-
OOS Template: Selecione o tipo de modelo a ser executado e configure seus parâmetros.
-
Os tipos de modelo incluem Public Templates e My Templates. O Auto Scaling usa o modelo selecionado para executar ações personalizadas nas instâncias.
Nota-
Para usar My Templates, crie seus próprios modelos primeiro. Para mais informações, consulte Criar um modelo.
-
Para mais informações sobre modelos públicos, consulte Modelos públicos.
-
-
Configure os parâmetros conforme suas necessidades de negócios. Se precisar definir a OOS RAM role, observe o seguinte:
-
O OOS deve poder assumir a função RAM. A entidade confiável deve ser um Alibaba Cloud Service e o serviço confiável deve ser o OOS. Para mais informações, consulte Procedimento.
-
A função RAM deve ter permissões para gerenciar recursos ECS, ECI e Auto Scaling. Para obter a política necessária, clique em View Authorization Policy. Para mais informações sobre como conceder permissões a uma função RAM, consulte Criar e autorizar uma função RAM para OOS.
NotaPara mais exemplos de configuração de parâmetros de modelo, consulte Visão geral das melhores práticas para lifecycle hooks e modelos OOS.
-
-
-
Event Bus: Após selecionar um barramento de eventos do EventBridge, o sistema gera diferentes tipos de notificações de ciclo de vida quando ocorre uma atividade de dimensionamento no grupo. Identifique e trate os eventos com base nessas notificações.
-
-
Clique em OK.
Após a criação do lifecycle hook, visualize-o na aba Lifecycle Hook da página de detalhes do grupo de dimensionamento.
Se o Auto Scaling acionar uma atividade de dimensionamento aplicável ao lifecycle hook, o estado da instância ECS ou ECI afetada mudará para Pending.
Modifique ou exclua um lifecycle hook
Modifique ou exclua um lifecycle hook conforme as necessidades do seu negócio mudarem.
Acesse o Auto Scaling console.
No painel de navegação à esquerda, clique em Scaling Groups.
Na barra de navegação superior, selecione uma região.
Na página Scaling Groups, localize o grupo de dimensionamento desejado e clique em View Details na coluna Actions.
Na página de detalhes do grupo de dimensionamento, clique na aba Event and adhesive hook e, em seguida, vá para a seção Lifecycle Hook.
-
Modifique ou exclua o lifecycle hook.
Modifique um lifecycle hook
Modifique as propriedades de um lifecycle hook em vez de recriá-lo.
Localize o lifecycle hook desejado e clique em Edit na coluna Actions.
-
Modifique a configuração do lifecycle hook e clique em OK.
Não é possível modificar o nome de um lifecycle hook. Para descrições dos outros parâmetros, consulte a Etapa 7 na seção "Criar um lifecycle hook".
Exclua um lifecycle hook
Exclua um lifecycle hook para liberar a cota de hooks. É possível excluir um hook mesmo enquanto ele estiver pausando uma atividade de dimensionamento.
ImportanteSe você excluir um lifecycle hook enquanto houver uma instância em estado pendente, o estado pendente dessa instância terminará imediatamente.
-
Localize um ou mais lifecycle hooks que deseja excluir e, em seguida, exclua-os.
Para excluir um único hook: Na coluna Actions do hook, clique em Delete.
Para excluir vários hooks: Selecione os hooks que deseja excluir e clique em Delete na parte inferior da lista de lifecycle hooks.
Na mensagem exibida, clique em OK.
Desativar ou ativar um lifecycle hook
Após a criação, um lifecycle hook fica no estado Active por padrão. Desative ou ative um lifecycle hook conforme necessário.
Acesse o Auto Scaling console.
No painel de navegação à esquerda, clique em Scaling Groups.
Na barra de navegação superior, selecione uma região.
Na página Scaling Groups, localize o grupo de dimensionamento desejado e clique em View Details na coluna Actions.
Na página de detalhes do grupo de dimensionamento, clique na aba Event and adhesive hook e, em seguida, vá para a seção Lifecycle Hook.
-
Desative ou ative o lifecycle hook.
Desativar um lifecycle hook
Desative um lifecycle hook temporariamente desnecessário.
Localize o lifecycle hook desejado e clique em Pause na coluna Actions.
Na mensagem exibida, clique em OK.
Ative um lifecycle hook
Ative um lifecycle hook desativado quando precisar dele novamente.
Localize o lifecycle hook desejado e clique em Enable na coluna Actions.
Na mensagem exibida, clique em OK.
Referências
CreateLifecycleHook: Cria um lifecycle hook.
ModifyLifecycleHook: Modifica um lifecycle hook.
DeleteLifecycleHook: Exclui um lifecycle hook.
CompleteLifecycleAction: Encerra o estado pendente de uma ação de ciclo de vida antes que o período de tempo limite expire.