Todos os produtos
Search
Central de documentação

Auto Scaling:Automatically add and remove ECS instances from a PolarDB cluster whitelist

Última atualização: Aug 25, 2026

Este tópico descreve como combinar o recurso de lifecycle hook do Auto Scaling com um modelo do CloudOps Orchestration Service (OOS). Essa integração permite colocar instâncias do Elastic Compute Service (ECS) no estado Pending e automatizar a adição ou remoção dos endereços IP das instâncias nas listas de permissões de endereços IP de clusters PolarDB.

Pré-requisitos

  • Crie um grupo de dimensionamento e verifique se ele está no estado Enabled.

  • Crie um cluster PolarDB.

  • Crie uma função do Resource Access Management (RAM) para o OOS. A entidade confiável da função RAM deve ser Alibaba Cloud Service, o service confiável deve ser **CloudOps Orchestration Service** e a função RAM deve ter permissões para executar operações no modelo do OOS. Para mais informações, consulte Create a RAM role for OOS and grant permissions.

    Nota

    Neste tópico, a função RAM OOSServiceRole é usada como exemplo. Você também pode usar outras funções.

Contexto

Atualmente, o Auto Scaling suporta integração apenas com Server Load Balancer (SLB) e ApsaraDB RDS. Se você armazena dados de aplicativos em um cluster PolarDB, atualizar manualmente a lista de permissões de endereços IP do cluster com os endereços IP privados das suas instâncias ECS torna os processos operacionais ineficientes. Para melhorar a eficiência operacional, considere automatizar as atualizações da lista de permissões de endereços IP do seu cluster PolarDB combinando o recurso de lifecycle hook do Auto Scaling com um modelo do OOS.

Procedimento

Neste exemplo, usamos o modelo público do OOS chamado ACS-ESS-LifeCycleModifyPolarDBIPWhitelist para demonstrar como automatizar a adição de endereços IP de instâncias à lista de permissões de endereços IP de um cluster PolarDB durante um evento de scale-out. Execute as etapas a seguir:

Nota

Para automatizar a remoção de endereços IP de instâncias da lista de permissões de endereços IP do seu cluster PolarDB, crie um lifecycle hook para scale-in e aplique-o durante um evento de scale-in.

Etapa 1: Conceder permissões no OOS a uma função RAM

Você precisa ter permissões para executar modelos do OOS. O modelo ACS-ESS-LifeCycleModifyPolarDBIPWhitelist inclui recursos do ECS, Auto Scaling e PolarDB necessários para realizar tarefas de O&M.

  1. Acesse o console RAM.

  2. Crie uma política.

    1. No painel de navegação à esquerda, escolha Permissions > Policies.

    2. Na página Policies, clique em Create Policy.

    3. Na página Create Policy, clique na aba JSON, configure os parâmetros e clique em OK.

      A tabela a seguir descreve as configurações usadas neste exemplo. Quaisquer parâmetros não abordados na tabela mantêm seus valores predefinidos.

      Parameter

      Description

      Name

      Insira ESSHookPolicyForPolarDBWhitelist.

      Policy Document

      Insira o seguinte conteúdo:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:DescribeInstances"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "polardb:DescribeDBClusterAccessWhitelist",
                      "polardb:ModifyDBClusterAccessWhitelist"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "ess:CompleteLifecycleAction"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
  3. Anexe a política à função RAM OOSServiceRole.

    1. No painel de navegação à esquerda, escolha Identities > Roles.

    2. Localize a função RAM OOSServiceRole e clique em Grant Permission na coluna Actions.

      Adicione as permissões necessárias à função RAM OOSServiceRole assumida pelo OOS para concluir a autorização.

    3. Na página Grant Permission, configure o escopo de recursos e a política, e clique em Grant Permission.

      A tabela a seguir descreve as configurações usadas neste exemplo. Quaisquer parâmetros não abordados na tabela mantêm seus valores predefinidos.

      Parameter

      Description

      Resource Scope

      Defina o valor como Account.

      Policies

      Selecione a seguinte política personalizada: ESSHookPolicyForPolarDBWhitelist.

Etapa 2: Criar um lifecycle hook para scale-out e acionar um evento de scale-out

  1. Acesse o console do Auto Scaling.

  2. No painel de navegação à esquerda, clique em Scaling Groups.

  3. Na barra de navegação superior, selecione uma região.

  4. Localize o grupo de dimensionamento que deseja gerenciar 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.

  5. Crie um lifecycle hook.

    1. No topo da página, clique na aba Event and adhesive hook.

    2. Clique em Create Lifecycle Hook.

    3. Configure os parâmetros do lifecycle hook e clique em OK.

      A tabela a seguir descreve as configurações usadas neste exemplo. Quaisquer parâmetros não abordados na tabela mantêm seus valores predefinidos.

      Parameter

      Description

      Name

      Insira ESSHookForAddPolarDBWhitelist.

      Scaling Activity Type

      Selecione Scale-Out.

      Timeout Period

      Configure o Timeout Period conforme as necessidades do seu negócio. Neste exemplo, defina o valor como 300. Unidade: segundos.

      Nota

      O período de timeout é o intervalo de tempo durante o qual você pode executar operações personalizadas nas instâncias. Se esse período for menor que o tempo necessário para concluir as operações personalizadas, elas poderão falhar. Recomendamos estimar o tempo necessário para executar as operações personalizadas nas instâncias e configurar o Timeout Period com base nessa estimativa.

      Default Execution Policy

      Selecione Continue.

      Send Notification When Lifecycle Hook Takes Effect

      Configure os seguintes parâmetros para o modelo:

      • Notification Method: Selecione OOS Template.

      • OOS Template Type: Selecione Public Templates.

      • Selecione ACS-ESS-LifeCycleModifyPolarDBIPWhitelist.

      No modelo público ACS-ESS-LifeCycleModifyPolarDBIPWhitelist, configure também os seguintes parâmetros:

      • dbClusterId: Insira o ID do cluster PolarDB.

      • modifyMode: Selecione Append. Este valor aplica-se ao evento de scale-out, no qual o Auto Scaling adiciona os endereços IP privados das suas instâncias ECS à lista de permissões de endereços IP do cluster PolarDB.

      • OOSAssumeRole: Selecione OOSServiceRole. Na Etapa 1, a função OOSServiceRole recebeu permissões sobre os recursos do ECS, Auto Scaling e PolarDB. O OOS obtém essas permissões após assumir a função RAM.

  6. Acione um evento de scale-out.

    Neste exemplo, acionamos manualmente um evento de scale-out executando uma regra de dimensionamento. Também é possível acionar eventos de scale-out usando tarefas agendadas ou acionadas por eventos.

    Nota

    Os lifecycle hooks entram em vigor quando eventos de dimensionamento são acionados pela execução manual de regras de dimensionamento. No entanto, os lifecycle hooks não entram em vigor quando você adiciona ou remove instâncias ECS de um grupo de dimensionamento manualmente.

    1. Clique na aba Scaling Rules and Event-triggered Tasks.

    2. Na aba Scaling Rules, clique em Create Scaling Rule.

    3. Defina as propriedades da regra de dimensionamento e clique em OK.

      A tabela a seguir descreve as configurações usadas neste exemplo. Quaisquer parâmetros não abordados na tabela mantêm seus valores predefinidos.

      Parameter

      Description

      Rule Name

      Insira Add1.

      Rule Type

      Selecione Simple Scaling Rule.

      Operation

      Defina o valor como Add 1 Instances.

    4. Na lista de regras de dimensionamento, localize a regra Add1 criada e clique em Recurrently na coluna Actions.

    5. Clique em OK.

    Após a execução da regra de dimensionamento, o Auto Scaling adiciona uma instância ECS ao grupo de dimensionamento. No entanto, a instância ECS entra no estado Pending Add devido ao lifecycle hook ESSHookForAddPolarDBWhitelist em vigor. Durante o período de timeout do lifecycle hook, o Auto Scaling notifica o OOS para executar as tarefas de O&M definidas no modelo público ACS-ESS-LifeCycleModifyPolarDBIPWhitelist.

Etapa 3: Verificar a lista de permissões de endereços IP do cluster PolarDB

  1. Acesse o console do PolarDB.

  2. No painel de navegação à esquerda, clique em Clusters.

  3. Localize o cluster PolarDB e clique no seu ID na coluna Cluster ID/Name.

  4. No painel de navegação à esquerda, clique em Settings and Management > Cluster Whitelist.

    • Se o endereço IP privado da instância ECS for adicionado à lista de permissões de endereços IP do cluster PolarDB, o modelo público ACS-ESS-LifeCycleModifyPolarDBIPWhitelist terá entrado em vigor.

    • Se a instância ECS foi criada, mas seu endereço IP privado não foi adicionado à lista de permissões de endereços IP do cluster PolarDB, acesse o console do OOS para visualizar a execução das tarefas de O&M. Para mais informações, consulte Step 4: (Optional) View the OOS execution.

Etapa 4: (Opcional) Visualizar a execução do OOS

  1. Acesse o console do OOS.

  2. No painel de navegação à esquerda, escolha Automated Task > Task Execution Management.

  3. Localize a tarefa de execução por horário e clique em Details na coluna Actions.

  4. Na página de detalhes da execução exibida, visualize as informações relacionadas.

    Por exemplo, visualize o ID e o status da execução na seção Basic Information. Na seção Execution Result, clique em um nó de tarefa para ver seus detalhes. Para mais informações, consulte View the details of an execution.

    Nota

    Se a execução falhar, uma mensagem de erro será exibida na página de detalhes da execução.

Perguntas frequentes

Se houver falha na execução de uma tarefa de O&M, solucione o problema com base na mensagem de erro no resultado da execução. Para mais informações, consulte FAQ.

A tabela a seguir descreve mensagens de erro comuns.

Error message

Cause

Solution

Forbidden.Unauthorized message: A required authorization for the specified action is not supplied.

Você não autorizou o Auto Scaling a executar a ação atual.

Verifique se a função RAM OOSServiceRole possui as permissões necessárias.

Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM.

O usuário RAM ou a função RAM não tem permissões para operar nos recursos correspondentes.

Verifique se a função RAM OOSServiceRole possui as permissões necessárias. Por exemplo, conceda permissões do OOS à função RAM. Antes que o OOS possa gerenciar os recursos declarados no modelo do OOS, você deve conceder as permissões necessárias à função RAM.

LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action.

A ação do lifecycle hook em andamento terminou ou foi interrompida.

Avalie o período de timeout do lifecycle hook para garantir que as tarefas de O&M especificadas no modelo do OOS possam ser concluídas dentro do limite de tempo estipulado.