La ressource ALIYUN::ESS::ScalingGroup crée un groupe de mise à l'échelle, qui regroupe plusieurs instances ECS destinées au même scénario applicatif. Le groupe ne devient effectif qu'après son activation via la ressource ALIYUN::ESS::ScalingGroupEnable, ce qui permet de déclencher les activités de mise à l'échelle et d'exécuter les règles associées.
Syntaxe
{
"Type": "ALIYUN::ESS::ScalingGroup",
"Properties": {
"MultiAZPolicy": String,
"DesiredCapacity": Integer,
"NotificationConfigurations": List,
"ProtectedInstances": List,
"LaunchTemplateId": String,
"LaunchTemplateVersion": String,
"ScalingGroupName": String,
"VSwitchIds": List,
"DefaultCooldown": Integer,
"MinSize": Integer,
"GroupDeletionProtection": Boolean,
"MaxSize": Integer,
"InstanceId": String,
"VSwitchId": String,
"LoadBalancerIds": List,
"StandbyInstances": List,
"RemovalPolicys": List,
"HealthCheckType": String,
"DBInstanceIds": List,
"Tags": List,
"OnDemandPercentageAboveBaseCapacity": Integer,
"CompensateWithOnDemand": Boolean,
"ContainerGroupId": String,
"ScalingPolicy": String,
"SpotInstanceRemedy": Boolean,
"SpotInstancePools": Integer,
"OnDemandBaseCapacity": Integer,
"GroupType": String,
"LaunchTemplateOverrides": List,
"AllocationStrategy": String,
"AzBalance": Boolean,
"MaxInstanceLifetime": Integer,
"CustomPolicyARN": String,
"SpotAllocationStrategy": String,
"HealthCheckTypes": List,
"ServerGroups": List,
"ResourceGroupId": String
}
}
Propriétés
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour possible |
Description |
Contraintes |
|
MinSize |
Integer |
Oui |
Oui |
Le nombre minimal d'instances ECS dans le groupe de mise à l'échelle. |
Valeurs valides : 0 à 1000. Auto Scaling crée automatiquement des instances lorsque le nombre tombe en dessous de cette valeur. |
|
MaxSize |
Integer |
Oui |
Oui |
Le nombre maximal d'instances ECS dans le groupe de mise à l'échelle. |
Valeurs valides : 0 à 1000. Auto Scaling supprime automatiquement des instances lorsque le nombre dépasse cette valeur. |
|
ScalingGroupName |
String |
Non |
Oui |
Le nom affiché du groupe de mise à l'échelle. |
Le nom doit comporter entre 2 et 64 caractères. Il doit commencer par un chiffre, une lettre ou un caractère chinois. Il peut contenir des lettres, des caractères chinois, des chiffres, des traits de soulignement (_), des traits d'union (-) et des points (.). Le nom doit être unique au sein de la même région et sous le même compte Alibaba Cloud. Valeur par défaut : ID du groupe de mise à l'échelle. |
|
LaunchTemplateId |
String |
Non |
Oui |
L'ID du modèle de lancement utilisé pour la création d'instances. |
Aucune |
|
LaunchTemplateVersion |
String |
Non |
Oui |
La version du modèle de lancement ECS. |
Valeurs valides :
|
|
RemovalPolicys |
List |
Non |
Oui |
Les stratégies de suppression des instances ECS du groupe de mise à l'échelle. |
Valeurs valides :
|
|
VSwitchId |
String |
Non |
Oui |
L'ID du vSwitch. |
Aucune |
|
LoadBalancerIds |
List |
Non |
Oui |
Les IDs des instances SLB. |
Tableau JSON contenant jusqu'à cinq IDs d'instances SLB, séparés par des virgules (,). |
|
DefaultCooldown |
Integer |
Non |
Oui |
Le temps de temporisation après la fin d'une activité de mise à l'échelle. |
Valeurs valides : 0 à 86 400. Unité : secondes. Valeur par défaut : 300. Pendant la période de temporisation, le groupe de mise à l'échelle rejette les autres activités de mise à l'échelle. S'applique uniquement aux activités déclenchées par les tâches basées sur les événements de CloudMonitor. |
|
DBInstanceIds |
List |
Non |
Oui |
Les IDs des instances ApsaraDB RDS. |
Tableau JSON contenant jusqu'à huit IDs d'instances RDS, séparés par des virgules (,). |
|
VSwitchIds |
List |
Non |
Oui |
Les IDs de plusieurs vSwitches. |
Jusqu'à cinq IDs de vSwitch. Cette propriété remplace |
|
MultiAZPolicy |
String |
Non |
Oui |
La stratégie de mise à l'échelle des instances ECS dans un groupe multi-zones. |
Valeurs valides :
|
|
NotificationConfigurations |
List |
Non |
Oui |
Les configurations de notification des événements et des modifications de ressources. |
|
|
ProtectedInstances |
List |
Non |
Oui |
Le nombre d'instances ECS protégées dans le groupe de mise à l'échelle. |
Vous pouvez spécifier jusqu'à 1 000 instances. |
|
StandbyInstances |
List |
Non |
Oui |
Le nombre d'instances ECS en veille dans le groupe de mise à l'échelle. |
Vous pouvez spécifier jusqu'à 1 000 instances. |
|
HealthCheckTypes |
List |
Non |
Oui |
Les types de contrôle de santé pour le groupe de mise à l'échelle. |
Valeurs valides :
|
|
HealthCheckType |
String |
Non |
Oui |
Le type de contrôle de santé. |
Valeurs valides :
|
|
GroupDeletionProtection |
Boolean |
Non |
Oui |
Active ou désactive la protection contre la suppression du groupe de mise à l'échelle. |
Valeurs valides :
|
|
DesiredCapacity |
Integer |
Non |
Oui |
Le nombre attendu d'instances ECS dans le groupe de mise à l'échelle. Auto Scaling maintient le nombre d'instances à cette valeur. |
La valeur doit être supérieure ou égale à |
|
InstanceId |
String |
Non |
Non |
L'ID d'une instance ECS à partir de laquelle le système dérive une configuration de mise à l'échelle lors de la création du groupe. |
Aucune |
|
Tags |
List |
Non |
Oui |
Les tags. |
Vous pouvez ajouter jusqu'à 20 tags. |
|
OnDemandPercentageAboveBaseCapacity |
Integer |
Non |
Oui |
Le pourcentage d'instances à la demande parmi les instances qui dépassent la capacité de base. |
Une fois la valeur Valeurs valides : 0 à 100. |
|
CompensateWithOnDemand |
Boolean |
Non |
Oui |
Indique s'il faut créer des instances à la demande pour atteindre le nombre requis d'instances ECS. |
Effectif uniquement lorsque Valeurs valides :
|
|
ContainerGroupId |
String |
Non |
Non |
L'ID de l'instance ECI. |
Aucune |
|
ScalingPolicy |
String |
Non |
Non |
Le mode de récupération du groupe de mise à l'échelle. |
Valeurs valides :
|
|
SpotInstanceRemedy |
Boolean |
Non |
Oui |
Active les instances Spot supplémentaires. |
Valeurs valides :
|
|
SpotInstancePools |
Integer |
Non |
Oui |
Le nombre de types d'instances disponibles. |
Le groupe de mise à l'échelle équilibre les instances Spot entre les types d'instances les moins coûteux. Valeurs valides : 1 à 10. |
|
OnDemandBaseCapacity |
Integer |
Non |
Oui |
Le nombre minimal d'instances à la demande requis par le groupe de mise à l'échelle. |
Valeurs valides : 0 à 1000. Le système privilégie la création d'instances à la demande lorsque le nombre est inférieur à cette valeur. |
|
GroupType |
String |
Non |
Non |
Le type d'instances gérées par le groupe de mise à l'échelle. |
Valeurs valides :
|
|
LaunchTemplateOverrides |
List |
Non |
Oui |
Les substitutions de type d'instance qui étendent le modèle de lancement. |
Aucune |
|
AllocationStrategy |
String |
Non |
Oui |
La politique d'allocation de capacité. |
Détermine comment le groupe de mise à l'échelle sélectionne les types d'instance pour répondre aux exigences de capacité. S'applique à la fois à la capacité à la demande et préemptible. Effectif uniquement lorsque Valeurs valides :
|
|
AzBalance |
Boolean |
Non |
Oui |
Répartit uniformément la capacité du groupe de mise à l'échelle sur plusieurs zones. |
Effectif uniquement lorsque Valeurs valides :
|
|
MaxInstanceLifetime |
Integer |
Non |
Oui |
La durée de vie maximale d'une instance dans le groupe de mise à l'échelle. |
Unité : secondes. Valeurs valides : 86 400 à Valeur par défaut : null. |
|
CustomPolicyARN |
String |
Non |
Oui |
L'ARN de la fonction de politique de réduction personnalisée. |
Ce paramètre est effectif uniquement lorsque la première stratégie de suppression dans |
|
SpotAllocationStrategy |
String |
Non |
Oui |
La politique d'allocation pour la capacité Spot. |
Stratégie de distribution pour la capacité Spot. Effective uniquement lorsque Valeurs valides :
|
|
ServerGroups |
List |
Non |
Non |
Les configurations de groupe de serveurs Server Load Balancer. |
|
|
ResourceGroupId |
String |
Non |
Oui |
L'ID du groupe de ressources. |
Aucune |
Syntaxe ServerGroups
"ServerGroups": [
{
"Type": String,
"ServerGroupId": String,
"Weight": Number,
"Port": Number
}
]
Propriétés ServerGroups
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour possible |
Description |
Contraintes |
|
Type |
String |
Oui |
Non |
Le type de groupe de serveurs Server Load Balancer. |
Valeurs valides :
|
|
ServerGroupId |
String |
Oui |
Non |
L'ID du groupe de serveurs Server Load Balancer. |
Aucune |
|
Weight |
Number |
Oui |
Non |
Le poids de l'instance ECS ou ECI en tant que serveur backend. |
Valeurs valides : 0 à 100. Un poids plus élevé signifie que davantage de requêtes sont acheminées vers l'instance. Un poids de 0 signifie que l'instance ne reçoit aucune requête. |
|
Port |
Number |
Oui |
Non |
Le numéro de port de l'instance ECS ou ECI backend. |
Valeurs valides : 1 à 65 535. |
Syntaxe NotificationConfigurations
"NotificationConfigurations": [
{
"NotificationArn": String,
"NotificationTypes": List
}
]
Propriétés NotificationConfigurations
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour possible |
Description |
Contraintes |
|
NotificationArn |
String |
Oui |
Non |
Le destinataire de la notification pour les hooks de cycle de vie. Prend en charge les files d'attente ou les topics Simple Message Queue (anciennement MNS). |
Valeurs valides :
|
|
NotificationTypes |
List |
Oui |
Non |
Les types de notification pour les événements Auto Scaling et les modifications de ressources. |
Aucune |
Syntaxe Tags
"Tags": [
{
"Key": String,
"Value": String
}
]
Propriétés Tags
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour possible |
Description |
Contraintes |
|
Key |
String |
Oui |
Non |
La clé du tag. |
La clé doit comporter entre 1 et 128 caractères. Elle ne peut pas commencer par |
|
Value |
String |
Non |
Non |
La valeur du tag. |
La valeur peut comporter entre 0 et 128 caractères. Elle ne peut pas commencer par |
Syntaxe LaunchTemplateOverrides
"LaunchTemplateOverrides": [
{
"InstanceType": String,
"WeightedCapacity": Integer,
"SpotPriceLimit": Number
}
]
Propriétés LaunchTemplateOverrides
|
Nom de la propriété |
Type |
Obligatoire |
Mise à jour possible |
Description |
Contraintes |
|
InstanceType |
String |
Non |
Oui |
Le type d'instance ECS. |
Pour effectuer une mise à l'échelle basée sur la capacité du type d'instance, spécifiez à la fois ce paramètre et Remplace le type d'instance dans le modèle de lancement. Remarque
Ce paramètre est effectif uniquement lorsqu'un modèle de lancement est spécifié par le paramètre |
|
WeightedCapacity |
Integer |
Non |
Oui |
Le poids du type d'instance. |
Pour effectuer une mise à l'échelle basée sur la capacité du type d'instance, spécifiez Représente la capacité d'une seule instance de ce type. Un poids plus élevé signifie que moins d'instances sont nécessaires pour atteindre la capacité attendue. Définissez les poids en fonction des métriques de performance telles que le nombre de vCPU et la taille de la mémoire. Par exemple :
Pour atteindre la capacité attendue, le groupe de mise à l'échelle ajoutera deux instances Valeurs valides : 1 à 500. Remarque
Lors d'une montée en puissance, la capacité du groupe de mise à l'échelle ne peut pas dépasser |
|
SpotPriceLimit |
Number |
Non |
Oui |
Le prix maximal pour une instance Spot. |
Prix maximal pour une instance Spot du type spécifié par Remarque
Ce paramètre est effectif uniquement lorsqu'un modèle de lancement est spécifié par le paramètre |
Valeur de retour
Fn::GetAtt
ScalingGroupId : L'ID du groupe de mise à l'échelle.
ScalingGroupName : Le nom du groupe de mise à l'échelle.
Arn : Le nom de ressource Alibaba Cloud (ARN).
Exemples
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VSwitch:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
Label:
zh-cn: VSwitch ID
en: VSwitch ID
LaunchTemplateId:
AssociationProperty: ALIYUN::ECS::LaunchTemplate::LaunchTemplateId
Type: String
Resources:
ScalingGroup:
Type: ALIYUN::ESS::ScalingGroup
Properties:
VSwitchId:
Ref: VSwitch
LaunchTemplateId:
Ref: LaunchTemplateId
MaxSize: 3
ScalingGroupName: TestScalingGroup
MinSize: 0
Outputs:
ScalingGroupId:
Description: The ID of the scaling group.
Value:
Fn::GetAtt:
- ScalingGroup
- ScalingGroupId
ScalingGroupName:
Description: The name of the scaling group.
Value:
Fn::GetAtt:
- ScalingGroup
- ScalingGroupName{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"VSwitch": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"Type": "String",
"Label": {
"zh-cn": "VSwitch ID",
"en": "VSwitch ID"
}
},
"LaunchTemplateId":{
"AssociationProperty":"ALIYUN::ECS::LaunchTemplate::LaunchTemplateId",
"Type":"String"
}
},
"Resources": {
"ScalingGroup": {
"Type": "ALIYUN::ESS::ScalingGroup",
"Properties": {
"VSwitchId": {
"Ref": "VSwitch"
},
"LaunchTemplateId": {
"Ref": "LaunchTemplateId"
},
"MaxSize": 3,
"ScalingGroupName": "TestScalingGroup",
"MinSize": 0
}
}
},
"Outputs": {
"ScalingGroupId": {
"Description": "The ID of the scaling group.",
"Value": {
"Fn::GetAtt": [
"ScalingGroup",
"ScalingGroupId"
]
}
},
"ScalingGroupName": {
"Description": "The name of the scaling group.",
"Value": {
"Fn::GetAtt": [
"ScalingGroup",
"ScalingGroupName"
]
}
}
}
}Lorsqu'un groupe de mise à l'échelle ne possède qu'une seule configuration de mise à l'échelle dépendant d'autres ressources, définissez DependsOn sur le groupe de mise à l'échelle pour créer la dépendance de ressource requise.
Dans cet exemple, ScalingGroup dépend de SecurityGroup car ScalingConfiguration en a besoin.
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VpcId:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
VSwitchId:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
AssociationPropertyMetadata:
VpcId: ${VpcId}
Resources:
ScalingGroupEnable:
Type: ALIYUN::ESS::ScalingGroupEnable
Properties:
ScalingConfigurationId:
Ref: ScalingConfiguration
ScalingGroupId:
Ref: ScalingGroup
ScalingRuleArisExecuteVersion: 0
SecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupName:
Ref: ALIYUN::StackName
VpcId:
Ref: VpcId
SecurityGroupIngress:
- PortRange: '-1/-1'
Priority: 1
SourceCidrIp: 0.0.X.X/0
IpProtocol: all
NicType: internet
SecurityGroupEgress:
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.X.X/0
NicType: internet
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.X.X/0
NicType: intranet
ScalingConfiguration:
Type: ALIYUN::ESS::ScalingConfiguration
DependsOn: ScalingGroup
Properties:
InstanceType: ecs.g6e.large
ImageId: centos_7_04_64_20G_alibase_201701015.vhd
SystemDiskCategory: cloud_essd
SystemDiskSize: 100
ScalingConfigurationName:
Ref: ALIYUN::StackName
ScalingGroupId:
Ref: ScalingGroup
SecurityGroupId:
Ref: SecurityGroup
ScalingGroup:
Type: ALIYUN::ESS::ScalingGroup
DependsOn: SecurityGroup
Properties:
MaxSize: 3
MinSize: 0
DefaultCooldown: 15
VSwitchId:
Ref: VSwitchId
Outputs: {}