Nama templat
ACS-ESS-LifeCycleModifyRedisIPWhitelist
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 |
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:
getInstanceIpAddress — Memanggil
ecs:DescribeInstancesuntuk mengambil alamat IP privat (VPC dan jaringan klasik) dari instans ECS yang ditentukan. Jika langkah ini gagal, templat memicuCompleteLifecycleActionForAbandon.modifySecurityIps — Memanggil
kvstore:ModifySecurityIpsuntuk memperbarui daftar putih instans Tair dengan alamat IP yang diambil, menggunakan modemodifyModeyang ditentukan. Jika langkah ini berhasil, templat memicuCompleteLifecycleActionForContinue. Jika gagal, templat memicuCompleteLifecycleActionForAbandon.CompleteLifecycleActionForContinue — Memberi tahu Auto Scaling bahwa aktivitas kait siklus hidup dapat dilanjutkan (
CONTINUE). Langkah ini hanya dijalankan jika langkah 2 berhasil.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 }}'