All Products
Search
Document Center

CloudOps Orchestration Service:ACS-ESS-LifeCycleModifyRedisIPWhitelist

Last Updated:Jun 05, 2026

Nama templat

ACS-ESS-LifeCycleModifyRedisIPWhitelist

Execute Now

Deskripsi templat

Memperbarui daftar putih alamat IP instans Tair (kompatibel dengan Redis OSS) saat Auto Scaling menambahkan atau menghapus instans Elastic Compute Service (ECS), menggunakan kait siklus hidup untuk memicu pembaruan tersebut.

Jenis templat

Otomatis

Pemilik

Alibaba Cloud

Parameter input

Parameter

Deskripsi

Type

Wajib

Nilai default

Batasan

dbInstanceId

ID instans Tair (kompatibel dengan Redis OSS) yang daftar putih IP-nya ingin Anda perbarui.

String

Ya

modifyMode

Metode pembaruan. Gunakan Append atau AppendDup saat penskalaan keluar (menambahkan instans), dan Delete saat penskalaan masuk (menghapus instans). Nilai yang valid: Append, Delete, AppendDup.

String

Ya

regionId

Wilayah tempat instans Tair berada. Default-nya adalah ID wilayah yang diteruskan oleh kait siklus hidup Auto Scaling.

String

Tidak

${regionId}

instanceIds

ID instans ECS yang alamat IP-nya ditambahkan ke atau dihapus dari daftar putih. Default-nya adalah daftar ID instans yang diteruskan oleh kait siklus hidup.

List

Tidak

['${instanceIds}']

lifecycleHookId

ID kait siklus hidup yang memicu eksekusi ini.

String

Tidak

${lifecycleHookId}

lifecycleActionToken

Token yang mengidentifikasi aktivitas penskalaan yang terkait dengan instans tersebut.

String

Tidak

${lifecycleActionToken}

OOSAssumeRole

Peran RAM yang diasumsikan oleh OOS untuk menjalankan templat ini.

String

Tidak

OOSServiceRole

Parameter output

Parameter

Deskripsi

Tipe

ipAddresses

Alamat IP privat dari instans ECS yang ditentukan, termasuk IP privat VPC dan IP internal jaringan klasik.

List

Cara kerja

Templat ini menjalankan empat tugas secara berurutan:

  1. getInstanceIpAddress — Memanggil ecs:DescribeInstances untuk mengambil alamat IP privat (VPC dan jaringan klasik) dari instans ECS yang ditentukan. Jika langkah ini gagal, templat memicu CompleteLifecycleActionForAbandon.

  2. modifySecurityIps — Memanggil kvstore:ModifySecurityIps untuk memperbarui daftar putih instans Tair dengan alamat IP yang diambil, menggunakan mode modifyMode yang ditentukan. Jika langkah ini berhasil, templat memicu CompleteLifecycleActionForContinue. Jika gagal, templat memicu CompleteLifecycleActionForAbandon.

  3. CompleteLifecycleActionForContinue — Memberi tahu Auto Scaling bahwa aktivitas kait siklus hidup dapat dilanjutkan (CONTINUE). Langkah ini hanya dijalankan jika langkah 2 berhasil.

  4. CompleteLifecycleActionForAbandon — Memberi tahu Auto Scaling untuk membatalkan aktivitas penskalaan (ABANDON). Langkah ini dijalankan jika langkah 1 atau langkah 2 gagal.

Kebijakan yang diperlukan untuk menjalankan templat ini

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

Referensi

ACS-ESS-LifeCycleModifyRedisIPWhitelist

Konten Templat

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