Todos os produtos
Search
Central de documentação

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

Última atualização: Oct 14, 2026

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

Pré-requisitos

  • Certifique-se de ter criado um grupo de dimensionamento no estado Enabled.

  • Certifique-se de ter criado 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 serviço confiável deve ser o CloudOps Orchestration Service e a função RAM deve ter as 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, usamos a função RAM OOSServiceRole como exemplo. Você também pode usar outras funções.

Contexto

Atualmente, o Auto Scaling oferece suporte apenas à integração com o Server Load Balancer (SLB) e o ApsaraDB RDS. Se você armazena os dados do seu aplicativo em um cluster PolarDB, a atualização manual da 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 aumentar a eficiência operacional, considere automatizar a atualização da lista de permissões de endereços IP do seu cluster PolarDB ao combinar o recurso de lifecycle hook do Auto Scaling e um modelo do OOS.

Procedimento

Neste exemplo, usamos o modelo público do OOS chamado ACS-ESS-LifeCycleModifyPolarDBIPWhitelist para mostrar como automatizar a adição dos 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 dos endereços IP das 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: Conceda permissões do 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 a execução de tarefas de O&M.

  1. Faça logon no RAM console.

  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 deste exemplo. Os parâmetros não mencionados mantêm os valores predefinidos.

      Parâmetro

      Descrição

      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. Encontre a função RAM OOSServiceRole e clique em Grant Permission na coluna Actions.

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

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

      A tabela a seguir descreve as configurações deste exemplo. Os parâmetros não mencionados mantêm os valores predefinidos.

      Parâmetro

      Descrição

      Resource Scope

      Defina o valor como Account.

      Policies

      Selecione a seguinte política personalizada: ESSHookPolicyForPolarDBWhitelist.

Etapa 2: Crie um lifecycle hook para scale-out e acione um evento de scale-out

  1. Faça logon no Auto Scaling console.

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

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

  4. Encontre o grupo de dimensionamento e gerencie-o, abrindo a página de detalhes de uma das seguintes maneiras:

    • Na coluna Scaling Group Name/ID, clique no ID do grupo de dimensionamento.

    • Na coluna Actions, clique em Details.

  5. Em seguida, crie um lifecycle hook.

    1. Na parte superior da página, clique na aba Events and Lifecycle Hooks.

    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 deste exemplo. Os parâmetros não mencionados mantêm os valores predefinidos.

      Parâmetro

      Descrição

      Name

      Insira ESSHookForAddPolarDBWhitelist.

      Scaling Activity Type

      Selecione Scale-Out.

      Timeout Period

      Configure o Timeout Period de acordo com os requisitos do seu negócio. Neste exemplo, defina o valor como 300. Unidade: segundos.

      Nota

      O tempo limite é o período durante o qual você pode executar operações personalizadas nas instâncias. Se esse tempo for menor que o necessário para executar as operações, elas poderão falhar. Recomendamos estimar o tempo necessário para as operações personalizadas 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, também é necessário configurar os seguintes parâmetros:

      • dbClusterId: Insira o ID do cluster PolarDB.

      • modifyMode: Selecione Append. Esse valor se aplica 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 as 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. Você também pode acionar eventos de scale-out por meio de tarefas agendadas ou acionadas por eventos.

    Nota

    Os lifecycle hooks entram em vigor quando você executa manualmente regras de dimensionamento para acionar eventos de dimensionamento. No entanto, eles não entram em vigor quando você adiciona ou remove manualmente instâncias ECS de um grupo de dimensionamento.

    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 deste exemplo. Os parâmetros não mencionados mantêm os valores predefinidos.

      Parâmetro

      Descrição

      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, encontre 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 tempo limite 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: Verifique a lista de permissões de endereços IP do cluster PolarDB

  1. Faça logon no PolarDB console.

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

  3. Encontre o cluster PolarDB e clique no ID dele 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, significa que o modelo público ACS-ESS-LifeCycleModifyPolarDBIPWhitelist entrou em vigor.

    • Se a instância ECS for criada, mas o endereço IP privado dela não for 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) Visualize a execução do OOS

  1. Faça logon no OOS console.

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

  3. Encontre a tarefa de execução pelo 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, você pode visualizar 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 visualizar os detalhes dele. Para mais informações, consulte View the details of an execution.

    Nota

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

Perguntas frequentes

Caso não consiga executar uma tarefa de O&M, solucione o problema com base na mensagem de erro do resultado da execução. Para mais informações, consulte FAQ.

A tabela a seguir descreve as mensagens de erro mais comuns.

Mensagem de erro

Causa

Solução

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 tem 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 as permissões para operar os recursos correspondentes.

Verifique se a função RAM OOSServiceRole tem as permissões necessárias. Por exemplo, conceda as permissões do OOS à função RAM. Antes que o OOS possa gerenciar os recursos declarados no modelo, é necessário conceder as permissões adequadas à 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 tempo limite do lifecycle hook para garantir que as tarefas de O&M especificadas no modelo do OOS sejam concluídas dentro do tempo alocado.