Todos los productos
Search
Centro de documentos

CloudOps Orchestration Service:ACS-ESS-LifeCycleModifyRedisIPWhitelist

Última actualización: Sep 05, 2026

Nombre de la plantilla

ACS-ESS-LifeCycleModifyRedisIPWhitelist

Ejecutar ahora

Descripción de la plantilla

Actualice la lista de permitidos de direcciones IP de una instancia de Tair (compatible con Redis OSS) cuando Auto Scaling agrega o elimina instancias de Elastic Compute Service (ECS). Esta actualización se desencadena mediante un lifecycle hook.

Tipo de plantilla

Automatizada

Propietario

Alibaba Cloud

Parámetros de entrada

Parámetro

Descripción

Tipo

Obligatorio

Valor predeterminado

Límite

dbInstanceId

ID de la instancia de Tair (compatible con Redis OSS) cuya lista de permitidos de IP desea actualizar.

String

Sí

modifyMode

Método de actualización. Utilice Append o AppendDup al escalar horizontalmente (agregar instancias) y Delete al reducir la escala (eliminar instancias). Valores válidos: Append, Delete, AppendDup.

String

Sí

regionId

Región donde reside la instancia de Tair. De forma predeterminada, se usa el ID de región que proporciona el lifecycle hook de Auto Scaling.

String

No

${regionId}

instanceIds

ID de las instancias de ECS cuyas direcciones IP se agregan a la lista de permitidos o se eliminan de ella. De forma predeterminada, se usa la lista de ID de instancia que proporciona el lifecycle hook.

List

No

['${instanceIds}']

lifecycleHookId

ID del lifecycle hook que desencadenó esta ejecución.

String

No

${lifecycleHookId}

lifecycleActionToken

Token que identifica la actividad de escalado asociada con las instancias.

String

No

${lifecycleActionToken}

OOSAssumeRole

Rol de RAM que OOS asume para ejecutar esta plantilla.

String

No

OOSServiceRole

Parámetros de salida

Parámetro

Descripción

Tipo

ipAddresses

Direcciones IP privadas de las instancias de ECS especificadas, incluidas las IP privadas de VPC y las IP internas de la red clásica.

List

Funcionamiento

La plantilla ejecuta cuatro tareas en secuencia:

  1. getInstanceIpAddress: Llama a ecs:DescribeInstances para obtener las direcciones IP privadas (VPC y red clásica) de las instancias de ECS especificadas. Si este paso falla, la plantilla activa CompleteLifecycleActionForAbandon.

  2. modifySecurityIps: Llama a kvstore:ModifySecurityIps para actualizar la lista de permitidos de la instancia de Tair con las IP obtenidas mediante el modifyMode especificado. Si este paso se completa correctamente, la plantilla activa CompleteLifecycleActionForContinue. En caso de fallo, activa CompleteLifecycleActionForAbandon.

  3. CompleteLifecycleActionForContinue: Notifica a Auto Scaling que la actividad del lifecycle hook puede continuar (CONTINUE). Se ejecuta solo si el paso 2 se completa correctamente.

  4. CompleteLifecycleActionForAbandon: Notifica a Auto Scaling que debe abandonar la actividad de escalado (ABANDON). Se ejecuta si falla el paso 1 o el paso 2.

Directiva necesaria para ejecutar esta plantilla

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

Referencias

ACS-ESS-LifeCycleModifyRedisIPWhitelist

Contenido de la plantilla

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 }}'