Todos os produtos
Search
Central de documentação

CloudOps Orchestration Service:ACS-ESS-LifeCycleModifyRedisIPWhitelist

Última atualização: Jun 28, 2026

Nome do modelo

ACS-ESS-LifeCycleModifyRedisIPWhitelist

Executar agora

Descrição do modelo

Atualize a lista de permissões de endereços IP de uma instância Tair (compatível com Redis OSS) quando o Auto Scaling adiciona ou remove instâncias do Elastic Compute Service (ECS). O modelo utiliza um lifecycle hook para acionar a atualização.

Tipo de modelo

Automatizado

Proprietário

Alibaba Cloud

Parâmetros de entrada

Parâmetro

Descrição

Tipo

Obrigatório

Valor padrão

Limite

dbInstanceId

ID da instância Tair (compatível com Redis OSS) cuja lista de permissões de IP será atualizada.

String

Sim

modifyMode

Método de atualização. Use Append ou AppendDup durante o scale-out (adição de instâncias) e Delete durante o scale-in (remoção de instâncias). Valores válidos: Append, Delete, AppendDup.

String

Sim

regionId

Região onde a instância Tair está localizada. O valor padrão é o ID da região transmitido pelo lifecycle hook do Auto Scaling.

String

Não

${regionId}

instanceIds

IDs das instâncias ECS cujos endereços IP serão adicionados ou removidos da lista de permissões. O valor padrão é a lista de IDs de instância fornecida pelo lifecycle hook.

List

Não

['${instanceIds}']

lifecycleHookId

ID do lifecycle hook que acionou esta execução.

String

Não

${lifecycleHookId}

lifecycleActionToken

Token que identifica a atividade de dimensionamento associada às instâncias.

String

Não

${lifecycleActionToken}

OOSAssumeRole

Função RAM assumida pelo OOS para executar este modelo.

String

Não

OOSServiceRole

Parâmetros de saída

Parâmetro

Descrição

Tipo

ipAddresses

Endereços IP privados das instâncias ECS especificadas, incluindo IPs privados de VPC e IPs internos de rede clássica.

List

Como funciona

Este modelo executa quatro tarefas em sequência:

  1. getInstanceIpAddress — Chama ecs:DescribeInstances para obter os endereços IP privados (VPC e rede clássica) das instâncias ECS especificadas. Se esta etapa falhar, o modelo aciona CompleteLifecycleActionForAbandon.

  2. modifySecurityIps — Invoca kvstore:ModifySecurityIps para atualizar a lista de permissões da instância Tair com os IPs obtidos, usando o modifyMode especificado. Em caso de sucesso, o modelo dispara CompleteLifecycleActionForContinue. Se houver falha, dispara CompleteLifecycleActionForAbandon.

  3. CompleteLifecycleActionForContinue — Notifica o Auto Scaling de que a atividade do lifecycle hook pode prosseguir (CONTINUE). Esta tarefa é executada apenas se a etapa 2 for bem-sucedida.

  4. CompleteLifecycleActionForAbandon — Informa ao Auto Scaling para abandonar a atividade de dimensionamento (ABANDON). Executada quando a etapa 1 ou a etapa 2 falha.

Política necessária para executar este modelo

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:DescribeInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "kvstore:ModifySecurityIps"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ess:CompleteLifecycleAction"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Referências

ACS-ESS-LifeCycleModifyRedisIPWhitelist

Conteúdo do modelo

FormatVersion: OOS-2019-06-01
Description:
  en: Use lifecycleHook to modify the IP whitelist of the redis instance
  zh-cn: 使用生命周期挂钩设置Redis实例的IP白名单
  name-en: ACS-ESS-LifeCycleModifyRedisIPWhitelist
  name-zh-cn: 使用生命周期挂钩设置Redis实例的IP白名单
  categories:
    - elastic_manage
Parameters:
  dbInstanceId:
    Label:
      en: DBInstanceId
      zh-cn: Redis实例ID
    Type: String
  modifyMode:
    Label:
      en: ModifyMode
      zh-cn: 修改IP白名单的方式
    Description:
      en: The method of modifying the IP whitelist, Append and AppendDup are used for
          elastic expansion activities, and Delete is used for elastic contraction activities
      zh-cn: 修改IP白名单的方式,Append和AppendDup用于弹性扩张活动,Delete用于弹性收缩活动
    Type: String
    AllowedValues:
      - Append
      - Delete
      - AppendDup
  regionId:
    Label:
      en: RegionId
      zh-cn: 地域ID
    Description:
      en: The ID of region
      zh-cn: '地域ID,请使用弹性伸缩系统默认值 ${regionId}'
    Type: String
    Default: '${regionId}'
  instanceIds:
    Label:
      en: InstanceIds
      zh-cn: ECS实例ID列表
    Description:
      en: The ID list of the ECS instance
      zh-cn: 'ECS实例ID列表,请使用弹性伸缩系统默认值 ["${instanceId}"]'
    Type: List
    Default:
      - '${instanceIds}'
  lifecycleHookId:
    Label:
      en: LifecycleHookId
      zh-cn: 生命周期挂钩ID
    Description:
      en: The ID of the lifecycle hook
      zh-cn: '生命周期挂钩ID,请使用弹性伸缩系统默认值 ${lifecycleHookId}'
    Type: String
    Default: '${lifecycleHookId}'
  lifecycleActionToken:
    Label:
      en: LifecycleActionToken
      zh-cn: 实例关联的特定伸缩活动的令牌
    Description:
      en: The token that indicates a specific scaling activity associated with an instance
      zh-cn: '实例关联的特定伸缩活动的令牌,请使用弹性伸缩系统默认值 ${lifecycleActionToken}'
    Type: String
    Default: '${lifecycleActionToken}'
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS扮演的RAM角色
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: getInstanceIpAddress
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Gets ECS instance network type and ip address
      zh-cn: 获取ECS实例的网络类型和Ip地址
    OnError: CompleteLifecycleActionForAbandon
    Properties:
      Service: ECS
      API: DescribeInstances
      Parameters:
        RegionId: '{{ regionId }}'
        InstanceIds: '{{ instanceIds }}'
    Outputs:
      Ips:
        Type: List
        ValueSelector: >-
          .Instances.Instance[]|.VpcAttributes.PrivateIpAddress.IpAddress+.InnerIpAddress.IpAddress|.[]
  - Name: modifySecurityIps
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Modifies the whitelist
      zh-cn: 修改白名单
    OnError: CompleteLifecycleActionForAbandon
    OnSuccess: CompleteLifecycleActionForContinue
    Properties:
      Service: R-KVSTORE
      API: ModifySecurityIps
      Parameters:
        RegionId: '{{ regionId }}'
        ModifyMode: '{{ modifyMode }}'
        InstanceId: '{{ dBInstanceId }}'
        SecurityIps:
          'Fn::Join':
            - ','
            - '{{ getInstanceIpAddress.Ips }}'
  - Name: CompleteLifecycleActionForContinue
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Modify lifecycle action for continue
      zh-cn: 修改伸缩活动的等待状态为继续完成
    OnSuccess: 'ACS::END'
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: CONTINUE
  - Name: CompleteLifecycleActionForAbandon
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Complete lifecycle action for Abandon
      zh-cn: 修改伸缩活动的等待状态为弃用
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: ABANDON
Outputs:
  ipAddresses:
    Type: List
    Value: '{{ getInstanceIpAddress.Ips }}'