Nom du modèle
ACS-ESS-LifeCycleModifyRedisIPWhitelist
Description du modèle
Met à jour la liste d'autorisation d'adresses IP d'une instance Tair (compatible Redis OSS) lorsqu'Auto Scaling ajoute ou supprime des instances Elastic Compute Service (ECS). Un hook de cycle de vie déclenche cette mise à jour.
Type de modèle
Automatisé
Propriétaire
Alibaba Cloud
Paramètres d'entrée
|**Paramètre**
|
**Description**
|
**Type**
|
**Obligatoire**
|
**Valeur par défaut**
|
**Limite**
| | --- | --- | --- | --- | --- | --- | |
dbInstanceId
|
ID de l'instance Tair (compatible Redis OSS) dont vous souhaitez mettre à jour la liste d'autorisation d'adresses IP.
|
String
|
Oui
| | | |
modifyMode
|
Méthode de mise à jour. Utilisez `Append` ou `AppendDup` lors d'un scale-out (ajout d'instances), et `Delete` lors d'un scale-in (suppression d'instances). Valeurs valides : `Append`, `Delete`, `AppendDup`.
|
String
|
Oui
| | | |
regionId
|
Région où réside l'instance Tair. La valeur par défaut est l'ID de région transmis par le hook de cycle de vie Auto Scaling.
|
String
|
Non
|
${regionId}
| | |
instanceIds
|
IDs des instances ECS dont les adresses IP sont ajoutées ou supprimées de la liste d'autorisation. La valeur par défaut est la liste d'IDs d'instances transmise par le hook de cycle de vie.
|
List
|
Non
|
['${instanceIds}']
| | |
lifecycleHookId
|
ID du hook de cycle de vie qui a déclenché cette exécution.
|
String
|
Non
|
${lifecycleHookId}
| | |
lifecycleActionToken
|
Jeton identifiant l'activité de mise à l'échelle associée aux instances.
|
String
|
Non
|
${lifecycleActionToken}
| | |
OOSAssumeRole
|
Rôle RAM qu'OOS endosse pour exécuter ce modèle.
|
String
|
Non
|
OOSServiceRole
| |
Paramètres de sortie
|**Paramètre**
|
**Description**
|
**Type**
| | --- | --- | --- | |
ipAddresses
|
Adresses IP privées des instances ECS spécifiées, y compris les IP privées VPC et les IP internes du réseau classique.
|
List
|
Fonctionnement
Le modèle exécute quatre tâches séquentiellement :
getInstanceIpAddress — Appelle
ecs:DescribeInstancespour récupérer les adresses IP privées (VPC et réseau classique) des instances ECS spécifiées. Si cette étape échoue, le modèle déclencheCompleteLifecycleActionForAbandon.modifySecurityIps — Appelle
kvstore:ModifySecurityIpspour mettre à jour la liste d'autorisation de l'instance Tair avec les IP récupérées, en utilisant lemodifyModespécifié. En cas de succès, le modèle déclencheCompleteLifecycleActionForContinue. En cas d'échec, il déclencheCompleteLifecycleActionForAbandon.CompleteLifecycleActionForContinue — Informe Auto Scaling que l'activité du hook de cycle de vie peut se poursuivre (
CONTINUE). S'exécute uniquement si l'étape 2 réussit.CompleteLifecycleActionForAbandon — Informe Auto Scaling d'abandonner l'activité de mise à l'échelle (
ABANDON). S'exécute lorsque l'étape 1 ou l'étape 2 échoue.
Politique requise pour exécuter ce modèle
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"kvstore:ModifySecurityIps"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ess:CompleteLifecycleAction"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Références
ACS-ESS-LifeCycleModifyRedisIPWhitelist
Contenu du modèle
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 }}'