Le type de ressource ALIYUN::ESS::ScalingConfiguration crée une configuration de mise à l'échelle pour un groupe de mise à l'échelle.
Syntaxe
{
"Type": "ALIYUN::ESS::ScalingConfiguration",
"Properties": {
"PasswordInherit": Boolean,
"DiskMappings": List,
"RamRoleName": String,
"IoOptimized": String,
"InternetChargeType": String,
"KeyPairName": String,
"InstanceId": String,
"InstanceTypes": List,
"ImageId": String,
"ResourceGroupId": String,
"SpotStrategy": String,
"InstanceType": String,
"SystemDiskCategory": String,
"SystemDiskSize": Integer,
"SystemDiskAutoSnapshotPolicyId": String,
"SystemDiskPerformanceLevel": String,
"InternetMaxBandwidthOut": Integer,
"InstanceName": String,
"InternetMaxBandwidthIn": Integer,
"ScalingConfigurationName": String,
"UserData": String,
"DeploymentSetId": String,
"SecurityGroupId": String,
"SpotPriceLimit": Number,
"HpcClusterId": String,
"ScalingGroupId": String,
"SpotPriceLimitForInstanceType": Map,
"TagList": List,
"Ipv6AddressCount": Integer,
"LoadBalancerWeight": Integer,
"CreditSpecification": String,
"ImageFamily": String,
"CpuOptions": Map,
"HostName": String,
"Password": String,
"SystemDiskBurstingEnabled": Boolean,
"ImageOptionsLoginAsNonRoot": Boolean,
"SystemDiskEncrypted": Boolean,
"SystemDiskEncryptAlgorithm": String,
"ZoneId": String,
"Cpu": Integer,
"SystemDiskProvisionedIops": Integer,
"SystemDiskKMSKeyId": String,
"InstancePatternInfos": List,
"SpotInterruptionBehavior": String,
"ImageName": String,
"SystemDiskDescription": String,
"SystemDiskDiskName": String,
"InstanceTypeOverrides": List,
"SystemDiskCategories": List,
"Memory": Integer,
"InstanceDescription": String,
"SecurityGroupIds": List,
"SpotDuration": Integer,
"SecurityEnhancementStrategy": String,
"Affinity": String,
"Tenancy": String,
"PrivatePoolOptions": Map,
"DedicatedHostId": String
}
}
Propriétés
Propriété | Type | Obligatoire | Modifiable | Description | Contraintes |
ScalingGroupId | String | Oui | Non | ID du groupe de mise à l'échelle auquel appartient la configuration de mise à l'échelle. | Aucune. |
Affinity | String | Non | Oui | Indique si l'instance d'hôte dédié est associée à un hôte dédié. | Valeurs valides :
|
Cpu | Integer | Non | Oui | Nombre de vCPU. | Vous pouvez spécifier conjointement Cpu et Memory pour définir une plage de types d'instance. Par exemple, Cpu=2 et Memory=16 définissent tous les types d'instance disposant de 2 vCPU et de 16 GiB de mémoire. Auto Scaling détermine les types d'instance disponibles en fonction de l'optimisation des E/S, des zones et d'autres facteurs, puis crée l'instance au prix le plus bas. |
CpuOptions | Map | Non | Oui | Options CPU. | Pour plus d'informations, consultez Propriétés CpuOptions. |
CreditSpecification | String | Non | Oui | Mode de fonctionnement des instances à performances variables (burstable). | Valeurs valides :
Pour plus d'informations sur les performances des instances, consultez Instances à performances variables. |
DedicatedHostId | String | Non | Oui | Indique s'il faut créer des instances ECS sur un hôte dédié. | Les hôtes dédiés ne prennent pas en charge les instances préemptibles. Si vous spécifiez DedicatedHostId, SpotStrategy et SpotPriceLimit sont ignorés. Appelez DescribeDedicatedHosts pour interroger les ID des hôtes dédiés. |
DeploymentSetId | String | Non | Non | ID du jeu de déploiement. | Aucune. |
DiskMappings | List | Non | Oui | Disques à attacher. | Un maximum de 16 disques est pris en charge. Pour plus d'informations, consultez Propriétés DiskMappings. |
HostName | String | Non | Oui | Nom d'hôte du serveur cloud. | Un point (.) ou un trait d'union (-) ne peut pas être le premier ou le dernier caractère, et les points ou traits d'union ne peuvent pas être consécutifs. Les exigences de nommage pour les différents types d'instance sont les suivantes :
|
HpcClusterId | String | Non | Non | ID du cluster E-HPC auquel appartient l'instance. | Aucune. |
ImageFamily | String | Non | Oui | Nom de la famille d'images. | Définissez cette propriété pour obtenir la dernière image disponible dans la famille d'images afin de créer l'instance. Vous ne pouvez pas définir cette propriété si ImageId est défini. |
ImageId | String | Non | Oui | ID de l'image de l'instance, y compris les images publiques, les images personnalisées et les images Alibaba Cloud Marketplace. | Pour plus d'informations, consultez Images publiques. |
ImageName | String | Non | Oui | Nom du fichier image. | Aucune. |
ImageOptionsLoginAsNonRoot | Boolean | Non | Non | Indique si une instance ECS utilise le compte ecs-user pour se connecter. | Valeurs valides :
|
InstanceDescription | String | Non | Oui | Description de l'instance ECS. | La description doit contenir entre 2 et 256 caractères anglais ou chinois et ne peut pas commencer par |
InstanceId | String | Non | Non | ID de l'instance de la configuration de mise à l'échelle. | Aucune. |
InstanceName | String | Non | Oui | Nom des instances créées sur la base de la configuration de mise à l'échelle actuelle. | Aucune. |
InstancePatternInfos | List | Non | Oui | Ensemble d'informations pour la configuration intelligente. | Pour plus d'informations, consultez Propriétés InstancePatternInfos. |
InstanceType | String | Non | Oui | Type d'instance. | Pour plus d'informations, consultez Présentation des familles d'instances. |
InstanceTypeOverrides | List | Non | Oui | Informations sur les types d'instance spécifiés. | Pour plus d'informations, consultez Propriétés InstanceTypeOverrides. |
InstanceTypes | List | Non | Oui | Paramètre de type d'instance multiple. | Si InstanceTypes est spécifié, InstanceType n'a aucun effet. Vous pouvez configurer jusqu'à 10 types d'instance dans une seule configuration de mise à l'échelle. Leurs priorités diminuent selon l'ordre des éléments de la liste. Si une instance ne peut pas être créée avec un type d'instance de priorité supérieure, Auto Scaling sélectionne automatiquement le type d'instance de priorité inférieure suivant. |
InternetChargeType | String | Non | Oui | Méthode de facturation pour la bande passante d'accès au réseau public. | Valeurs valides :
|
InternetMaxBandwidthIn | Integer | Non | Non | Bande passante entrante maximale sur le réseau public. | Unité : Mbps. Valeurs valides : 1 à 200. Si vous ne spécifiez pas cette propriété, la bande passante entrante est automatiquement définie sur 200 Mbps. Le trafic de données entrant est gratuit et cette propriété n'engendre jamais de frais. |
InternetMaxBandwidthOut | Integer | Non | Oui | Bande passante sortante maximale sur le réseau public. | Valeurs valides :
Unité : Mbps. |
IoOptimized | String | Non | Oui | Indique s'il faut créer une instance optimisée pour les E/S. | Valeurs valides :
|
Ipv6AddressCount | Integer | Non | Oui | Nombre d'adresses IPv6 générées aléatoirement à attribuer à l'interface réseau élastique. | Aucune. |
KeyPairName | String | Non | Oui | Nom de la paire de clés liée à l'instance. |
|
LoadBalancerWeight | Integer | Non | Oui | Pondération de l'instance ECS lorsqu'elle est un serveur backend d'équilibrage de charge. | Valeurs valides : 1 à 100. Valeur par défaut : 50. |
Memory | Integer | Non | Oui | Taille de la mémoire. | Unité : GiB. Vous pouvez spécifier conjointement Cpu et Memory pour définir une plage de types d'instance. Par exemple, Cpu=2 et Memory=16 définissent tous les types d'instance disposant de 2 vCPU et de 16 GiB de mémoire. Auto Scaling détermine les types d'instance disponibles en fonction de l'optimisation des E/S, des zones et d'autres facteurs, puis crée l'instance au prix le plus bas. |
Password | String | Non | Oui | Mot de passe de l'instance ECS. | Le mot de passe doit contenir entre 8 et 30 caractères et inclure trois catégories de caractères parmi les suivantes : lettres majuscules, lettres minuscules, chiffres et caractères spéciaux. Les caractères spéciaux suivants sont pris en charge : Un mot de passe pour une instance Windows ne peut pas commencer par une barre oblique (/). Remarque Si vous spécifiez Password, utilisez HTTPS pour envoyer des requêtes afin d'éviter la divulgation du mot de passe. |
PasswordInherit | Boolean | Non | Oui | Indique s'il faut utiliser le mot de passe prédéfini dans l'image. | Si le mot de passe prédéfini de l'image est utilisé, assurez-vous que l'image dispose d'un mot de passe prédéfini. |
PrivatePoolOptions | Map | Non | Oui | Configuration du pool privé pour le démarrage des instances. | Pour plus d'informations, consultez Propriétés PrivatePoolOptions. |
RamRoleName | String | Non | Oui | Nom du rôle RAM de l'instance. | Utilisez l'API RAM ListRoles pour interroger le nom du rôle RAM. Pour plus d'informations, consultez CreateRole et ListRoles. |
ResourceGroupId | String | Non | Oui | ID du groupe de ressources auquel appartient l'instance. | Aucune. |
ScalingConfigurationName | String | Non | Oui | Nom de la configuration de mise à l'échelle. | Le nom doit contenir entre 2 et 64 caractères, commencer par un chiffre, une lettre anglaise ou un caractère chinois, et peut contenir des chiffres, des lettres anglaises, des caractères chinois, des traits de soulignement (_), des traits d'union (-) et des points (.). Le nom doit être unique au sein d'un groupe de mise à l'échelle dans la même région. Si vous ne spécifiez pas cette propriété, l'ID de la configuration de mise à l'échelle est utilisé par défaut. |
SecurityEnhancementStrategy | String | Non | Non | Indique s'il faut activer le durcissement de sécurité. | Valeurs valides :
|
SecurityGroupId | String | Non | Oui | Groupe de sécurité auquel appartient l'instance. | Aucune. |
SecurityGroupIds | List | Non | Oui | Ajoute l'instance ECS à plusieurs groupes de sécurité. | Remarque SecurityGroupId et SecurityGroupIds ne peuvent pas être spécifiés simultanément. |
SpotDuration | Integer | Non | Oui | Période de conservation d'une instance préemptible. | Unité : heures. Valeurs valides :
|
SpotInterruptionBehavior | String | Non | Oui | Comportement d'interruption d'une instance préemptible. | Aucune. |
SpotPriceLimit | Number | Non | Oui | Prix horaire maximal de l'instance. | Jusqu'à trois décimales sont prises en charge. Cette propriété prend effet lorsque SpotStrategy est défini sur SpotWithPriceLimit. Sa valeur est remplacée par SpotPriceLimitForInstanceType. |
SpotPriceLimitForInstanceType | Map | Non | Oui | Types d'instance et offres correspondantes pour les instances préemptibles. | Format : Cette propriété prend effet lorsque SpotStrategy est défini sur SpotWithPriceLimit. Vous pouvez configurer jusqu'à 10 paires instance-prix. |
SpotStrategy | String | Non | Oui | Stratégie préemptible d'une instance à la demande. | Valeurs valides :
|
SystemDiskAutoSnapshotPolicyId | String | Non | Oui | ID de la politique de snapshot automatique utilisée par le disque système. | Aucune. |
SystemDiskBurstingEnabled | Boolean | Non | Non | Indique s'il faut activer les performances en rafale (burst) pour le disque système. | Valeurs valides :
|
SystemDiskCategories | List | Non | Oui | Catégories de disque multiples pour le disque système. | Si une catégorie de disque de priorité supérieure n'est pas disponible, Auto Scaling tente automatiquement de créer le disque système avec la catégorie de priorité inférieure suivante. Valeurs valides :
|
SystemDiskCategory | String | Non | Oui | Catégorie du disque système. | Valeurs valides :
Lorsque InstanceType est un type d'instance de série I et que l'instance n'est pas optimisée pour les E/S, la valeur par défaut est cloud. Sinon, la valeur par défaut est cloud_efficiency. |
SystemDiskDescription | String | Non | Oui | Description du disque système. | Aucune. |
SystemDiskDiskName | String | Non | Oui | Nom du disque système. | Aucune. |
SystemDiskEncryptAlgorithm | String | Non | Oui | Algorithme de chiffrement utilisé par le disque système. | Valeurs valides :
|
SystemDiskEncrypted | Boolean | Non | Oui | Indique si le disque système est chiffré. | Valeurs valides :
|
SystemDiskKMSKeyId | String | Non | Oui | ID de la clé KMS utilisée par le disque système. | Aucune. |
SystemDiskPerformanceLevel | String | Non | Oui | Niveau de performance d'un ESSD utilisé comme disque système. | Valeurs valides :
Pour plus d'informations sur la sélection d'un niveau de performance ESSD, consultez Disques ESSD. |
SystemDiskProvisionedIops | Integer | Non | Oui | Métrique de performance des IOPS provisionnées (opérations d'entrée/sortie par seconde) du disque système. | Aucune. |
SystemDiskSize | Integer | Non | Oui | Taille du disque système. | Valeurs valides : 20 à 500. Valeur par défaut : 40. Unité : GiB. Si une image personnalisée est utilisée pour créer le disque système, la taille du disque système doit être supérieure ou égale à la taille de l'image personnalisée. |
TagList | List | Non | Oui | Tags de l'instance. | Les tags sont transmis sous forme de paires clé-valeur. Vous pouvez utiliser jusqu'à cinq tags au format suivant : Pour plus d'informations, consultez Propriétés TagList. |
Tenancy | String | Non | Oui | Indique s'il faut créer une instance sur un hôte dédié. | Valeurs valides :
|
UserData | String | Non | Oui | Données utilisateur transmises lors de la création d'une instance. | Le contenu ne doit pas dépasser 16 Ko. L'encodage Base64 n'est pas requis. Échappez les caractères spéciaux avec une barre oblique inverse (\). |
ZoneId | String | Non | Oui | ID de la zone à laquelle appartient l'instance. | Aucune. |
Syntaxe de DiskMappings
"DiskMappings": [
{
"Category": String,
"DiskName": String,
"Description": String,
"AutoSnapshotPolicyId": String,
"PerformanceLevel": String,
"Encrypted": String,
"KMSKeyId": String,
"Device": String,
"SnapshotId": String,
"Size": String,
"DeleteWithInstance": Boolean,
"ProvisionedIops": Integer,
"Categories": List,
"BurstingEnabled": Boolean
}
]
Propriétés de DiskMappings
Property | Type | Required | Editable | Description | Constraints |
AutoSnapshotPolicyId | String | No | No | ID de la politique de snapshot automatique utilisée par le disque de données. | Aucune. |
BurstingEnabled | Boolean | No | No | Indique si les performances en rafale (burst) sont activées pour le disque de données. | Valeurs valides :
|
Categories | List | No | No | Les différentes catégories de disque pour le disque de données. | La première catégorie de disque possède la priorité la plus élevée, tandis que les autres ont une priorité décroissante. Si une catégorie de disque à haute priorité n'est pas disponible, Auto Scaling tente automatiquement de créer le disque de données avec la catégorie suivante de priorité inférieure. Valeurs valides :
|
Category | String | No | No | Catégorie du disque de données. | Valeurs valides :
|
DeleteWithInstance | Boolean | No | No | Indique si le disque de données est libéré en même temps que l'instance. | Valeurs valides :
|
Description | String | No | No | Description du disque de données. | La longueur doit être comprise entre 2 et 256 caractères. Elle ne peut pas commencer par |
Device | String | No | No | Point de montage du disque de données. | Si cette propriété n'est pas spécifiée, le système l'attribue lors de la création automatique des instances ECS. Les valeurs commencent à |
DiskName | String | No | No | Nom du disque de données. | La longueur doit être comprise entre 2 et 128 caractères. Elle doit commencer par une lettre anglaise ou un caractère chinois et ne peut pas commencer par |
Encrypted | String | No | No | Indique si le disque de données est chiffré. | Valeurs valides :
|
KMSKeyId | String | No | No | ID de la clé KMS pour le disque de données. | Aucune. |
PerformanceLevel | String | No | No | Niveau de performance d'un ESSD utilisé comme disque de données. | Valeurs valides :
Pour plus d'informations sur la sélection d'un niveau de performance ESSD, consultez ESSDs. |
ProvisionedIops | Integer | No | No | Métrique de performance des IOPS provisionnées (opérations d'entrée/sortie par seconde) du disque de données. | Remarque Les IOPS représentent le nombre d'opérations d'E/S pouvant être traitées par seconde et indiquent la capacité de lecture/écriture du stockage par blocs. Unité : opérations. |
Size | String | No | No | Taille du disque de données. | Valeurs valides :
Unité : Go. Une fois cette propriété spécifiée, la taille du disque doit être supérieure ou égale à la taille du snapshot spécifiée par |
SnapshotId | String | No | No | Snapshot utilisé pour créer le disque de données. | Une fois cette propriété spécifiée, Size est ignorée et la taille réelle du disque correspond à celle du snapshot spécifié. Si le snapshot a été créé le 15 juillet 2013 ou avant, l'appel est rejeté et |
Syntaxe de PrivatePoolOptions
"PrivatePoolOptions":
{
"MatchCriteria": String,
"Id": String
}
Propriétés de PrivatePoolOptions
Property | Type | Required | Editable | Description | Constraints |
Id | String | No | Yes | ID du pool privé. | ID d'un service de garantie d'élasticité ou de réservation de capacité. |
MatchCriteria | String | No | Yes | Option de capacité du pool privé pour le démarrage des instances. | Un service de garantie d'élasticité ou de réservation de capacité génère une capacité de pool privé après son activation pour le démarrage des instances. Valeurs valides :
|
Syntaxe de InstanceTypeOverrides
"InstanceTypeOverrides": [
{
"InstanceType": String,
"WeightedCapacity": Integer
}
]
Propriétés de InstanceTypeOverrides
Property | Type | Required | Editable | Description | Constraints |
InstanceType | String | No | Yes | Type d'instance spécifié. | Pour mettre à l'échelle le groupe de mise à l'échelle par capacité de type d'instance, spécifiez cette propriété et WeightedCapacity ensemble. |
WeightedCapacity | Integer | No | Yes | Pondération du type d'instance spécifié. | Le nombre de vCPU, la taille de la mémoire et d'autres métriques de performance peuvent varier selon le type d'instance. Vous pouvez configurer différentes pondérations pour différents types d'instance selon vos besoins. Par exemple :
Pour atteindre la capacité souhaitée, le groupe de mise à l'échelle ajoute deux instances ecs.c5.xlarge. |
Syntaxe de InstancePatternInfos
"InstancePatternInfos": [
{
"BurstablePerformance": String,
"Architectures": List,
"InstanceFamilyLevel": String,
"Memory": Number,
"MaxPrice": Number,
"ExcludedInstanceTypes": List,
"Cores": Integer
}
]
Propriétés InstancePatternInfos
Property | Type | Required | Editable | Description | Constraints | |
Architectures | List | No | Yes | Type d'architecture du type d'instance. | Valeurs valides :
Par défaut : tous les types d'architecture. | |
BurstablePerformance | String | No | No | Indique si le type d'instance est à performances éclatables (burstable). | Valeurs valides :
Valeur par défaut : Include. | |
Cores | Integer | No | Yes | Nombre de cœurs vCPU du type d'instance en mode de configuration intelligente. | Permet de filtrer les plages de types d'instances répondant aux exigences. Pour plus d'informations, consultez la page Présentation des familles d'instances. Tenez compte des points suivants :
| |
ExcludedInstanceTypes | List | No | Yes | Types d'instances à exclure. | Les caractères génériques () permettent d'exclure un type d'instance individuel ou une famille d'instances entière. Par exemple :
| |
InstanceFamilyLevel | String | No | Yes | Niveau de la famille d'instances. | Permet de filtrer les plages de types d'instances répondant aux exigences et prend effet lorsque
| |
MaxPrice | Number | No | Yes | Prix horaire maximal acceptable pour les instances à la demande ou préemptibles en mode de configuration intelligente. | Aucun. | |
Memory | Number | No | Yes | Taille de la mémoire du type d'instance en mode de configuration intelligente. | Unité : GiB. Permet de filtrer les plages de types d'instances répondant aux exigences. |
Syntaxe CpuOptions
"CpuOptions":
{
"NestedVirtualization": String
}
Propriétés CpuOptions
Property | Type | Required | Editable | Description | Constraints |
NestedVirtualization | String | No | Yes | Indique s'il faut activer la virtualisation imbriquée. | Valeurs valides :
|
Syntaxe TagList
"TagList": [
{
"Key": String,
"Value": String
}
]
Propriétés TagList
|
Property |
Type |
Required |
Editable |
Description |
Constraints |
|
Key |
String |
Yes |
No |
Clé du tag. |
La longueur doit être comprise entre 1 et 64 caractères. Elle ne peut pas commencer par |
|
Value |
String |
No |
No |
Valeur du tag. |
La longueur doit être comprise entre 0 et 128 caractères. Elle ne peut pas commencer par |
Valeurs de retour
Fn::GetAtt
ScalingConfigurationId : ID de la configuration de mise à l'échelle. Généré par le système et unique à l'échelle mondiale.
ScalingGroupId : ID du groupe de mise à l'échelle auquel appartient la configuration de mise à l'échelle.
Exemples
Scénario 1 : Créez une configuration de mise à l'échelle pour un groupe de mise à l'échelle existant.
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: "\u4e3a\u5df2\u6709\u4f38\u7f29\u7ec4\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u4f38\u7f29\u914d\u7f6e\uff0c\u6307\u5b9a\u5b9e\u4f8b\u89c4\u683c\u3001\u955c\u50cf\u548c\u5b89\u5168\u7ec4\u3002"
en: Create a simple scaling configuration for an existing scaling group with specified instance type, image, and security group.
Parameters:
AutoScalingGroupId:
Type: String
Label:
zh-cn: "\u4f38\u7f29\u7ec4ID"
en: Scaling Group ID
Description:
zh-cn: "\u9009\u62e9\u5df2\u521b\u5efa\u7684\u4f38\u7f29\u7ec4ID\u3002"
en: Select an existing scaling group ID.
AssociationProperty: ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId
SecurityGroupId:
Type: String
Label:
zh-cn: "\u5b89\u5168\u7ec4ID"
en: Security Group ID
Description:
zh-cn: "\u9009\u62e9\u5b89\u5168\u7ec4ID\u3002"
en: Select a security group ID.
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
ImageId:
Type: String
Label:
zh-cn: "\u955c\u50cfID"
en: Image ID
Description:
zh-cn: "\u9009\u62e9\u7528\u4e8e\u521b\u5efa\u5b9e\u4f8b\u7684\u955c\u50cf\u3002"
en: Select an image for creating instances.
AssociationProperty: ALIYUN::ECS::Image::ImageId
AssociationPropertyMetadata:
SupportedImageOwnerAlias:
- system
- self
- others
InstanceType:
Type: String
Label:
zh-cn: "\u5b9e\u4f8b\u89c4\u683c"
en: Instance Type
Description:
zh-cn: "\u9009\u62e9ECS\u5b9e\u4f8b\u89c4\u683c\u3002"
en: Select an ECS instance type.
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
InstanceChargeType: PostPaid
SystemDiskCategory:
Type: String
Label:
zh-cn: "\u7cfb\u7edf\u76d8\u7c7b\u578b"
en: System Disk Category
Description:
zh-cn: "\u9009\u62e9\u7cfb\u7edf\u76d8\u7c7b\u578b\u3002"
en: Select a system disk category.
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
InstanceType: ${InstanceType}
Default: cloud_essd
Resources:
ScalingConfiguration:
Type: ALIYUN::ESS::ScalingConfiguration
Properties:
ScalingGroupId:
Ref: AutoScalingGroupId
SecurityGroupId:
Ref: SecurityGroupId
ImageId:
Ref: ImageId
InstanceType:
Ref: InstanceType
SystemDiskCategory:
Ref: SystemDiskCategory
SystemDiskSize: 40
ScalingConfigurationName:
Ref: ALIYUN::StackName
InternetMaxBandwidthOut: 5
InternetChargeType: PayByTraffic
Outputs:
ScalingConfigurationId:
Description:
zh-cn: "\u4f38\u7f29\u914d\u7f6eID\u3002"
en: Scaling configuration ID.
Label:
zh-cn: "\u4f38\u7f29\u914d\u7f6eID"
en: Scaling Configuration ID
Value:
Fn::GetAtt:
- ScalingConfiguration
- ScalingConfigurationId
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- AutoScalingGroupId
- SecurityGroupId
- ImageId
- InstanceType
- SystemDiskCategory{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": {
"zh-cn": "\u4e3a\u5df2\u6709\u4f38\u7f29\u7ec4\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u4f38\u7f29\u914d\u7f6e,\u6307\u5b9a\u5b9e\u4f8b\u89c4\u683c、\u955c\u50cf\u548c\u5b89\u5168\u7ec4。",
"en": "Create a simple scaling configuration for an existing scaling group with specified instance type, image, and security group."
},
"Parameters": {
"AutoScalingGroupId": {
"Type": "String",
"Label": {
"zh-cn": "\u4f38\u7f29\u7ec4ID",
"en": "Scaling Group ID"
},
"Description": {
"zh-cn": "\u9009\u62e9\u5df2\u521b\u5efa\u7684\u4f38\u7f29\u7ec4ID。",
"en": "Select an existing scaling group ID."
},
"AssociationProperty": "ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId"
},
"SecurityGroupId": {
"Type": "String",
"Label": {
"zh-cn": "\u5b89\u5168\u7ec4ID",
"en": "Security Group ID"
},
"Description": {
"zh-cn": "\u9009\u62e9\u5b89\u5168\u7ec4ID。",
"en": "Select a security group ID."
},
"AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId"
},
"ImageId": {
"Type": "String",
"Label": {
"zh-cn": "\u955c\u50cfID",
"en": "Image ID"
},
"Description": {
"zh-cn": "\u9009\u62e9\u7528\u4e8e\u521b\u5efa\u5b9e\u4f8b\u7684\u955c\u50cf。",
"en": "Select an image for creating instances."
},
"AssociationProperty": "ALIYUN::ECS::Image::ImageId",
"AssociationPropertyMetadata": {
"SupportedImageOwnerAlias": [
"system",
"self",
"others"
]
}
},
"InstanceType": {
"Type": "String",
"Label": {
"zh-cn": "\u5b9e\u4f8b\u89c4\u683c",
"en": "Instance Type"
},
"Description": {
"zh-cn": "\u9009\u62e9ECS\u5b9e\u4f8b\u89c4\u683c。",
"en": "Select an ECS instance type."
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"InstanceChargeType": "PostPaid"
}
},
"SystemDiskCategory": {
"Type": "String",
"Label": {
"zh-cn": "\u7cfb\u7edf\u76d8\u7c7b\u578b",
"en": "System Disk Category"
},
"Description": {
"zh-cn": "\u9009\u62e9\u7cfb\u7edf\u76d8\u7c7b\u578b。",
"en": "Select a system disk category."
},
"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
"AssociationPropertyMetadata": {
"InstanceType": "${InstanceType}"
},
"Default": "cloud_essd"
}
},
"Resources": {
"ScalingConfiguration": {
"Type": "ALIYUN::ESS::ScalingConfiguration",
"Properties": {
"ScalingGroupId": {
"Ref": "AutoScalingGroupId"
},
"SecurityGroupId": {
"Ref": "SecurityGroupId"
},
"ImageId": {
"Ref": "ImageId"
},
"InstanceType": {
"Ref": "InstanceType"
},
"SystemDiskCategory": {
"Ref": "SystemDiskCategory"
},
"SystemDiskSize": 40,
"ScalingConfigurationName": {
"Ref": "ALIYUN::StackName"
},
"InternetMaxBandwidthOut": 5,
"InternetChargeType": "PayByTraffic"
}
}
},
"Outputs": {
"ScalingConfigurationId": {
"Description": {
"zh-cn": "\u4f38\u7f29\u914d\u7f6eID。",
"en": "Scaling configuration ID."
},
"Label": {
"zh-cn": "\u4f38\u7f29\u914d\u7f6eID",
"en": "Scaling Configuration ID"
},
"Value": {
"Fn::GetAtt": [
"ScalingConfiguration",
"ScalingConfigurationId"
]
}
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"AutoScalingGroupId",
"SecurityGroupId",
"ImageId",
"InstanceType",
"SystemDiskCategory"
]
}
]
}
}
}Scénario 2 : Créez un réseau VPC et déployez l'infrastructure complète du groupe de mise à l'échelle.
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: "\u521b\u5efaVPC\u3001\u4ea4\u6362\u673a\u3001\u5b89\u5168\u7ec4\u3001\u4f38\u7f29\u7ec4\u548c\u4f38\u7f29\u914d\u7f6e\uff0c\u5e76\u542f\u7528\u4f38\u7f29\u7ec4\uff0c\u5b9e\u73b0\u5b8c\u6574\u7684\u5f39\u6027\u4f38\u7f29\u57fa\u7840\u67b6\u6784\u3002"
en: Create VPC, VSwitch, Security Group, Scaling Group and Scaling Configuration, then enable the scaling group to build a complete auto-scaling infrastructure.
Parameters:
ZoneId:
Type: String
Label:
zh-cn: "\u53ef\u7528\u533a"
en: Availability Zone
Description:
zh-cn: "\u9009\u62e9\u53ef\u7528\u533a\u3002"
en: Select an availability zone.
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
AssociationPropertyMetadata:
AutoSelectFirst: true
InstanceType:
Type: String
Label:
zh-cn: "\u5b9e\u4f8b\u89c4\u683c"
en: Instance Type
Description:
zh-cn: "\u9009\u62e9ECS\u5b9e\u4f8b\u89c4\u683c\u3002"
en: Select an ECS instance type.
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
InstanceChargeType: PostPaid
ZoneId: ${ZoneId}
ImageId:
Type: String
Label:
zh-cn: "\u955c\u50cfID"
en: Image ID
Description:
zh-cn: "\u9009\u62e9\u7528\u4e8e\u521b\u5efa\u5b9e\u4f8b\u7684\u955c\u50cf\u3002"
en: Select an image for creating instances.
AssociationProperty: ALIYUN::ECS::Image::ImageId
AssociationPropertyMetadata:
SupportedImageOwnerAlias:
- system
- self
- others
SystemDiskCategory:
Type: String
Label:
zh-cn: "\u7cfb\u7edf\u76d8\u7c7b\u578b"
en: System Disk Category
Description:
zh-cn: "\u9009\u62e9\u7cfb\u7edf\u76d8\u7c7b\u578b\u3002"
en: Select a system disk category.
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
InstanceType: ${InstanceType}
Default: cloud_essd
InstancePassword:
Type: String
Label:
zh-cn: "\u5b9e\u4f8b\u5bc6\u7801"
en: Instance Password
Description:
zh-cn: "\u670d\u52a1\u5668\u767b\u5f55\u5bc6\u7801\uff0c\u957f\u5ea68-30\uff0c\u5fc5\u987b\u5305\u542b\u4e09\u9879\uff08\u5927\u5199\u5b57\u6bcd\u3001\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7279\u6b8a\u7b26\u53f7\uff09\u3002"
en: Server login password, 8-30 characters, must contain three types (uppercase, lowercase, numbers, special symbols).
NoEcho: true
AssociationProperty: ALIYUN::ECS::Instance::Password
ConstraintDescription:
zh-cn: "\u957f\u5ea68-30\uff0c\u5fc5\u987b\u5305\u542b\u4e09\u9879\uff08\u5927\u5199\u5b57\u6bcd\u3001\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7279\u6b8a\u7b26\u53f7\uff09\u3002"
en: Length 8-30, must contain three types (uppercase, lowercase, numbers, special symbols).
MaxSize:
Type: Number
Label:
zh-cn: "\u6700\u5927\u5b9e\u4f8b\u6570"
en: Max Size
Description:
zh-cn: "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u4e2a\u6570\u7684\u6700\u5927\u503c\u3002"
en: The maximum number of ECS instances in the scaling group.
Default: 5
MinValue: 0
MaxValue: 1000
MinSize:
Type: Number
Label:
zh-cn: "\u6700\u5c0f\u5b9e\u4f8b\u6570"
en: Min Size
Description:
zh-cn: "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u4e2a\u6570\u7684\u6700\u5c0f\u503c\u3002"
en: The minimum number of ECS instances in the scaling group.
Default: 1
MinValue: 0
MaxValue: 1000
Resources:
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
VpcName:
Fn::Sub: ${ALIYUN::StackName}-vpc
CidrBlock: 192.168.0.0/16
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName:
Fn::Sub: ${ALIYUN::StackName}-vsw
VpcId:
Ref: Vpc
CidrBlock: 192.168.0.0/24
ZoneId:
Ref: ZoneId
SecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupName:
Fn::Sub: ${ALIYUN::StackName}-sg
VpcId:
Ref: Vpc
SecurityGroupIngress:
- PortRange: 22/22
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
- PortRange: 80/80
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
- PortRange: 443/443
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
SecurityGroupEgress:
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.0.0/0
NicType: intranet
ScalingGroup:
Type: ALIYUN::ESS::ScalingGroup
DependsOn: SecurityGroup
Properties:
MinSize:
Ref: MinSize
MaxSize:
Ref: MaxSize
DefaultCooldown: 300
ScalingGroupName: web-autoscaling-group
VpcId:
Ref: Vpc
VSwitchId:
Ref: VSwitch
HealthCheckType: ECS
RemovalPolicys:
- OldestInstance
- NewestInstance
GroupDeletionProtection: false
ScalingConfiguration:
Type: ALIYUN::ESS::ScalingConfiguration
DependsOn: ScalingGroup
Properties:
ScalingGroupId:
Ref: ScalingGroup
SecurityGroupId:
Ref: SecurityGroup
ImageId:
Ref: ImageId
InstanceType:
Ref: InstanceType
SystemDiskCategory:
Ref: SystemDiskCategory
SystemDiskSize: 40
ScalingConfigurationName: web-scaling-config
Password:
Ref: InstancePassword
InternetMaxBandwidthOut: 5
InternetChargeType: PayByTraffic
IoOptimized: optimized
TagList:
- Key: CreatedBy
Value: ROS
ScalingGroupEnable:
Type: ALIYUN::ESS::ScalingGroupEnable
Properties:
ScalingGroupId:
Ref: ScalingGroup
ScalingConfigurationId:
Ref: ScalingConfiguration
ScalingRuleArisExecuteVersion: 0
Outputs:
ScalingGroupId:
Description:
zh-cn: "\u4f38\u7f29\u7ec4ID\u3002"
en: Scaling group ID.
Label:
zh-cn: "\u4f38\u7f29\u7ec4ID"
en: Scaling Group ID
Value:
Fn::GetAtt:
- ScalingGroup
- ScalingGroupId
ScalingConfigurationId:
Description:
zh-cn: "\u4f38\u7f29\u914d\u7f6eID\u3002"
en: Scaling configuration ID.
Label:
zh-cn: "\u4f38\u7f29\u914d\u7f6eID"
en: Scaling Configuration ID
Value:
Fn::GetAtt:
- ScalingConfiguration
- ScalingConfigurationId
SecurityGroupId:
Description:
zh-cn: "\u5b89\u5168\u7ec4ID\u3002"
en: Security group ID.
Label:
zh-cn: "\u5b89\u5168\u7ec4ID"
en: Security Group ID
Value:
Ref: SecurityGroup
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- ZoneId
- InstanceType
- ImageId
- SystemDiskCategory
- InstancePassword
- Parameters:
- MaxSize
- MinSize{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": {
"zh-cn": "\u521b\u5efaVPC、\u4ea4\u6362\u673a、\u5b89\u5168\u7ec4、\u4f38\u7f29\u7ec4\u548c\u4f38\u7f29\u914d\u7f6e,\u5e76\u542f\u7528\u4f38\u7f29\u7ec4,\u5b9e\u73b0\u5b8c\u6574\u7684\u5f39\u6027\u4f38\u7f29\u57fa\u7840\u67b6\u6784。",
"en": "Create VPC, VSwitch, Security Group, Scaling Group and Scaling Configuration, then enable the scaling group to build a complete auto-scaling infrastructure."
},
"Parameters": {
"ZoneId": {
"Type": "String",
"Label": {
"zh-cn": "\u53ef\u7528\u533a",
"en": "Availability Zone"
},
"Description": {
"zh-cn": "\u9009\u62e9\u53ef\u7528\u533a。",
"en": "Select an availability zone."
},
"AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
"AssociationPropertyMetadata": {
"AutoSelectFirst": true
}
},
"InstanceType": {
"Type": "String",
"Label": {
"zh-cn": "\u5b9e\u4f8b\u89c4\u683c",
"en": "Instance Type"
},
"Description": {
"zh-cn": "\u9009\u62e9ECS\u5b9e\u4f8b\u89c4\u683c。",
"en": "Select an ECS instance type."
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"InstanceChargeType": "PostPaid",
"ZoneId": "${ZoneId}"
}
},
"ImageId": {
"Type": "String",
"Label": {
"zh-cn": "\u955c\u50cfID",
"en": "Image ID"
},
"Description": {
"zh-cn": "\u9009\u62e9\u7528\u4e8e\u521b\u5efa\u5b9e\u4f8b\u7684\u955c\u50cf。",
"en": "Select an image for creating instances."
},
"AssociationProperty": "ALIYUN::ECS::Image::ImageId",
"AssociationPropertyMetadata": {
"SupportedImageOwnerAlias": [
"system",
"self",
"others"
]
}
},
"SystemDiskCategory": {
"Type": "String",
"Label": {
"zh-cn": "\u7cfb\u7edf\u76d8\u7c7b\u578b",
"en": "System Disk Category"
},
"Description": {
"zh-cn": "\u9009\u62e9\u7cfb\u7edf\u76d8\u7c7b\u578b。",
"en": "Select a system disk category."
},
"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
"AssociationPropertyMetadata": {
"InstanceType": "${InstanceType}"
},
"Default": "cloud_essd"
},
"InstancePassword": {
"Type": "String",
"Label": {
"zh-cn": "\u5b9e\u4f8b\u5bc6\u7801",
"en": "Instance Password"
},
"Description": {
"zh-cn": "\u670d\u52a1\u5668\u767b\u5f55\u5bc6\u7801,\u957f\u5ea68-30,\u5fc5\u987b\u5305\u542b\u4e09\u9879(\u5927\u5199\u5b57\u6bcd、\u5c0f\u5199\u5b57\u6bcd、\u6570\u5b57、\u7279\u6b8a\u7b26\u53f7)。",
"en": "Server login password, 8-30 characters, must contain three types (uppercase, lowercase, numbers, special symbols)."
},
"NoEcho": true,
"AssociationProperty": "ALIYUN::ECS::Instance::Password",
"ConstraintDescription": {
"zh-cn": "\u957f\u5ea68-30,\u5fc5\u987b\u5305\u542b\u4e09\u9879(\u5927\u5199\u5b57\u6bcd、\u5c0f\u5199\u5b57\u6bcd、\u6570\u5b57、\u7279\u6b8a\u7b26\u53f7)。",
"en": "Length 8-30, must contain three types (uppercase, lowercase, numbers, special symbols)."
}
},
"MaxSize": {
"Type": "Number",
"Label": {
"zh-cn": "\u6700\u5927\u5b9e\u4f8b\u6570",
"en": "Max Size"
},
"Description": {
"zh-cn": "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u4e2a\u6570\u7684\u6700\u5927\u503c。",
"en": "The maximum number of ECS instances in the scaling group."
},
"Default": 5,
"MinValue": 0,
"MaxValue": 1000
},
"MinSize": {
"Type": "Number",
"Label": {
"zh-cn": "\u6700\u5c0f\u5b9e\u4f8b\u6570",
"en": "Min Size"
},
"Description": {
"zh-cn": "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u4e2a\u6570\u7684\u6700\u5c0f\u503c。",
"en": "The minimum number of ECS instances in the scaling group."
},
"Default": 1,
"MinValue": 0,
"MaxValue": 1000
}
},
"Resources": {
"Vpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"VpcName": {
"Fn::Sub": "${ALIYUN::StackName}-vpc"
},
"CidrBlock": "192.168.0.0/16"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"VSwitchName": {
"Fn::Sub": "${ALIYUN::StackName}-vsw"
},
"VpcId": {
"Ref": "Vpc"
},
"CidrBlock": "192.168.0.0/24",
"ZoneId": {
"Ref": "ZoneId"
}
}
},
"SecurityGroup": {
"Type": "ALIYUN::ECS::SecurityGroup",
"Properties": {
"SecurityGroupName": {
"Fn::Sub": "${ALIYUN::StackName}-sg"
},
"VpcId": {
"Ref": "Vpc"
},
"SecurityGroupIngress": [
{
"PortRange": "22/22",
"Priority": 1,
"SourceCidrIp": "0.0.0.0/0",
"IpProtocol": "tcp"
},
{
"PortRange": "80/80",
"Priority": 1,
"SourceCidrIp": "0.0.0.0/0",
"IpProtocol": "tcp"
},
{
"PortRange": "443/443",
"Priority": 1,
"SourceCidrIp": "0.0.0.0/0",
"IpProtocol": "tcp"
}
],
"SecurityGroupEgress": [
{
"PortRange": "-1/-1",
"Priority": 1,
"IpProtocol": "all",
"DestCidrIp": "0.0.0.0/0",
"NicType": "intranet"
}
]
}
},
"ScalingGroup": {
"Type": "ALIYUN::ESS::ScalingGroup",
"DependsOn": "SecurityGroup",
"Properties": {
"MinSize": {
"Ref": "MinSize"
},
"MaxSize": {
"Ref": "MaxSize"
},
"DefaultCooldown": 300,
"ScalingGroupName": "web-autoscaling-group",
"VpcId": {
"Ref": "Vpc"
},
"VSwitchId": {
"Ref": "VSwitch"
},
"HealthCheckType": "ECS",
"RemovalPolicys": [
"OldestInstance",
"NewestInstance"
],
"GroupDeletionProtection": false
}
},
"ScalingConfiguration": {
"Type": "ALIYUN::ESS::ScalingConfiguration",
"DependsOn": "ScalingGroup",
"Properties": {
"ScalingGroupId": {
"Ref": "ScalingGroup"
},
"SecurityGroupId": {
"Ref": "SecurityGroup"
},
"ImageId": {
"Ref": "ImageId"
},
"InstanceType": {
"Ref": "InstanceType"
},
"SystemDiskCategory": {
"Ref": "SystemDiskCategory"
},
"SystemDiskSize": 40,
"ScalingConfigurationName": "web-scaling-config",
"Password": {
"Ref": "InstancePassword"
},
"InternetMaxBandwidthOut": 5,
"InternetChargeType": "PayByTraffic",
"IoOptimized": "optimized",
"TagList": [
{
"Key": "CreatedBy",
"Value": "ROS"
}
]
}
},
"ScalingGroupEnable": {
"Type": "ALIYUN::ESS::ScalingGroupEnable",
"Properties": {
"ScalingGroupId": {
"Ref": "ScalingGroup"
},
"ScalingConfigurationId": {
"Ref": "ScalingConfiguration"
},
"ScalingRuleArisExecuteVersion": 0
}
}
},
"Outputs": {
"ScalingGroupId": {
"Description": {
"zh-cn": "\u4f38\u7f29\u7ec4ID。",
"en": "Scaling group ID."
},
"Label": {
"zh-cn": "\u4f38\u7f29\u7ec4ID",
"en": "Scaling Group ID"
},
"Value": {
"Fn::GetAtt": [
"ScalingGroup",
"ScalingGroupId"
]
}
},
"ScalingConfigurationId": {
"Description": {
"zh-cn": "\u4f38\u7f29\u914d\u7f6eID。",
"en": "Scaling configuration ID."
},
"Label": {
"zh-cn": "\u4f38\u7f29\u914d\u7f6eID",
"en": "Scaling Configuration ID"
},
"Value": {
"Fn::GetAtt": [
"ScalingConfiguration",
"ScalingConfigurationId"
]
}
},
"SecurityGroupId": {
"Description": {
"zh-cn": "\u5b89\u5168\u7ec4ID。",
"en": "Security group ID."
},
"Label": {
"zh-cn": "\u5b89\u5168\u7ec4ID",
"en": "Security Group ID"
},
"Value": {
"Ref": "SecurityGroup"
}
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"ZoneId",
"InstanceType",
"ImageId",
"SystemDiskCategory",
"InstancePassword"
]
},
{
"Parameters": [
"MaxSize",
"MinSize"
]
}
]
}
}
}Scénario 3 : Créez une solution de mise à l'échelle automatique complète intégrant un équilibreur de charge CLB et des hooks de cycle de vie.
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: "\u521b\u5efa\u5b8c\u6574\u7684\u5f39\u6027\u4f38\u7f29\u65b9\u6848\uff0c\u5305\u542bVPC\u7f51\u7edc\u3001CLB\u8d1f\u8f7d\u5747\u8861\u3001\u591a\u5b9e\u4f8b\u89c4\u683c\u4f38\u7f29\u914d\u7f6e\uff08\u542b\u62a2\u5360\u5f0f\u5b9e\u4f8b\u7b56\u7565\u548c\u6570\u636e\u76d8\uff09\u3001\u751f\u547d\u5468\u671f\u6302\u94a9\uff08\u81ea\u52a8\u90e8\u7f72\u5e94\u7528\uff09\u3001\u4f38\u7f29\u7ec4\u542f\u7528\u4e0e\u8d1f\u8f7d\u5747\u8861\u6302\u8f7d\uff0c\u5b9e\u73b0\u9ad8\u53ef\u7528\u81ea\u52a8\u4f38\u7f29\u4e0e\u81ea\u52a8\u8fd0\u7ef4\u3002"
en: Create a complete auto-scaling solution including VPC network, CLB load balancer, multi-instance-type scaling configuration with spot strategy and data disks, lifecycle hooks for automatic application deployment, scaling group enablement and load balancer attachment, achieving high-availability auto-scaling and automated O&M.
Parameters:
ZoneId:
Type: String
Label:
zh-cn: "\u53ef\u7528\u533a"
en: Availability Zone
Description:
zh-cn: "\u9009\u62e9\u53ef\u7528\u533a\u3002"
en: Select an availability zone.
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
AssociationPropertyMetadata:
AutoSelectFirst: true
InstanceType:
Type: String
Label:
zh-cn: "\u4e3b\u5b9e\u4f8b\u89c4\u683c"
en: Primary Instance Type
Description:
zh-cn: "\u9009\u62e9ECS\u4e3b\u5b9e\u4f8b\u89c4\u683c\uff08\u4f38\u7f29\u914d\u7f6e\u5c06\u540c\u65f6\u914d\u7f6e\u5907\u9009\u89c4\u683c\u4ee5\u5e94\u5bf9\u5e93\u5b58\u4e0d\u8db3\uff09\u3002"
en: Select the primary ECS instance type (the scaling configuration will also configure alternate types for inventory fallback).
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
InstanceChargeType: PostPaid
ZoneId: ${ZoneId}
ImageId:
Type: String
Label:
zh-cn: "\u955c\u50cfID"
en: Image ID
Description:
zh-cn: "\u9009\u62e9\u7528\u4e8e\u521b\u5efa\u5b9e\u4f8b\u7684\u955c\u50cf\u3002"
en: Select an image for creating instances.
AssociationProperty: ALIYUN::ECS::Image::ImageId
AssociationPropertyMetadata:
SupportedImageOwnerAlias:
- system
- self
- others
SystemDiskCategory:
Type: String
Label:
zh-cn: "\u7cfb\u7edf\u76d8\u7c7b\u578b"
en: System Disk Category
Description:
zh-cn: "\u9009\u62e9\u7cfb\u7edf\u76d8\u7c7b\u578b\u3002"
en: Select a system disk category.
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
InstanceType: ${InstanceType}
Default: cloud_essd
InstancePassword:
Type: String
Label:
zh-cn: "\u5b9e\u4f8b\u5bc6\u7801"
en: Instance Password
Description:
zh-cn: "\u670d\u52a1\u5668\u767b\u5f55\u5bc6\u7801\uff0c\u957f\u5ea68-30\uff0c\u5fc5\u987b\u5305\u542b\u4e09\u9879\uff08\u5927\u5199\u5b57\u6bcd\u3001\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7279\u6b8a\u7b26\u53f7\uff09\u3002"
en: Server login password, 8-30 characters, must contain three types (uppercase, lowercase, numbers, special symbols).
NoEcho: true
AssociationProperty: ALIYUN::ECS::Instance::Password
ConstraintDescription:
zh-cn: "\u957f\u5ea68-30\uff0c\u5fc5\u987b\u5305\u542b\u4e09\u9879\uff08\u5927\u5199\u5b57\u6bcd\u3001\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7279\u6b8a\u7b26\u53f7\uff09\u3002"
en: Length 8-30, must contain three types (uppercase, lowercase, numbers, special symbols).
MaxSize:
Type: Number
Label:
zh-cn: "\u6700\u5927\u5b9e\u4f8b\u6570"
en: Max Size
Description:
zh-cn: "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u4e2a\u6570\u7684\u6700\u5927\u503c\u3002"
en: The maximum number of ECS instances in the scaling group.
Default: 10
MinValue: 0
MaxValue: 1000
MinSize:
Type: Number
Label:
zh-cn: "\u6700\u5c0f\u5b9e\u4f8b\u6570"
en: Min Size
Description:
zh-cn: "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u4e2a\u6570\u7684\u6700\u5c0f\u503c\u3002"
en: The minimum number of ECS instances in the scaling group.
Default: 2
MinValue: 0
MaxValue: 1000
DesiredCapacity:
Type: Number
Label:
zh-cn: "\u671f\u671b\u5b9e\u4f8b\u6570"
en: Desired Capacity
Description:
zh-cn: "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u7684\u671f\u671b\u6570\u91cf\u3002"
en: The desired number of ECS instances in the scaling group.
Default: 2
MinValue: 0
MaxValue: 1000
DataDiskSize:
Type: Number
Label:
zh-cn: "\u6570\u636e\u76d8\u5927\u5c0f(GB)"
en: Data Disk Size (GB)
Description:
zh-cn: "\u6570\u636e\u76d8\u5927\u5c0f\uff0c\u5355\u4f4dGB\u3002"
en: Data disk size in GB.
Default: 100
MinValue: 20
MaxValue: 32768
Resources:
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
VpcName:
Fn::Sub: ${ALIYUN::StackName}-vpc
CidrBlock: 192.168.0.0/16
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName:
Fn::Sub: ${ALIYUN::StackName}-vsw
VpcId:
Ref: Vpc
CidrBlock: 192.168.0.0/24
ZoneId:
Ref: ZoneId
SecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupName:
Fn::Sub: ${ALIYUN::StackName}-sg
VpcId:
Ref: Vpc
SecurityGroupIngress:
- PortRange: 22/22
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
- PortRange: 80/80
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
- PortRange: 443/443
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
SecurityGroupEgress:
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.0.0/0
NicType: intranet
LoadBalancer:
Type: ALIYUN::SLB::LoadBalancer
Properties:
LoadBalancerName:
Fn::Sub: ${ALIYUN::StackName}-slb
AddressType: internet
VpcId:
Ref: Vpc
VSwitchId:
Ref: VSwitch
LoadBalancerSpec: slb.s2.medium
Bandwidth: 5
LoadBalancerListener:
Type: ALIYUN::SLB::Listener
Properties:
LoadBalancerId:
Ref: LoadBalancer
ListenerPort: 80
BackendServerPort: 80
Bandwidth: 5
HealthCheck:
HealthCheckType: http
Interval: 5
Timeout: 3
URI: /
HttpCode: http_2xx,http_3xx,http_4xx,http_5xx
HealthyThreshold: 2
UnhealthyThreshold: 3
Port: 80
Scheduler: wrr
Protocol: http
ScalingGroup:
Type: ALIYUN::ESS::ScalingGroup
DependsOn: SecurityGroup
Properties:
MinSize:
Ref: MinSize
MaxSize:
Ref: MaxSize
DesiredCapacity:
Ref: DesiredCapacity
DefaultCooldown: 300
ScalingGroupName: web-autoscaling-group
VpcId:
Ref: Vpc
VSwitchId:
Ref: VSwitch
HealthCheckType: ECS
MultiAZPolicy: PRIORITY
RemovalPolicys:
- OldestScalingConfiguration
- OldestInstance
GroupDeletionProtection: false
ScalingPolicy: release
LoadBalancerIds:
- Ref: LoadBalancer
ScalingConfiguration:
Type: ALIYUN::ESS::ScalingConfiguration
DependsOn: ScalingGroup
Properties:
ScalingGroupId:
Ref: ScalingGroup
SecurityGroupId:
Ref: SecurityGroup
ImageId:
Ref: ImageId
InstanceType:
Ref: InstanceType
SystemDiskCategory:
Ref: SystemDiskCategory
SystemDiskSize: 40
SystemDiskPerformanceLevel: PL1
ScalingConfigurationName: web-scaling-config
Password:
Ref: InstancePassword
InternetMaxBandwidthOut: 5
InternetChargeType: PayByTraffic
IoOptimized: optimized
SpotStrategy: SpotWithPriceLimit
SpotPriceLimit: 0.5
SpotDuration: 1
LoadBalancerWeight: 50
DiskMappings:
- Category:
Ref: SystemDiskCategory
Size:
Ref: DataDiskSize
DiskName: data-disk
DeleteWithInstance: true
PerformanceLevel: PL1
TagList:
- Key: CreatedBy
Value: ROS
- Key: Environment
Value: Production
ScalingGroupEnable:
Type: ALIYUN::ESS::ScalingGroupEnable
Properties:
ScalingGroupId:
Ref: ScalingGroup
ScalingConfigurationId:
Ref: ScalingConfiguration
ScalingRuleArisExecuteVersion: 0
LifecycleHookForScaleOut:
Type: ALIYUN::ESS::LifecycleHook
DependsOn: ScalingGroupEnable
Properties:
ScalingGroupId:
Ref: ScalingGroup
LifecycleHookName: scale-out-hook
LifecycleTransition: SCALE_OUT
DefaultResult: CONTINUE
HeartbeatTimeout: 600
NotificationArn:
Fn::Join:
- ''
- - 'acs:ess:'
- Ref: ALIYUN::Region
- ':'
- Ref: ALIYUN::TenantId
- ':'
- oos/ACS-ESS-LifeCycleRunCommand
NotificationMetadata:
Fn::Sub: |-
{
"commandContent": "#!/bin/bash\nyum install -y nginx\nsystemctl enable nginx\nsystemctl start nginx",
"commandType": "RunShellScript"
}
LifecycleHookForScaleIn:
Type: ALIYUN::ESS::LifecycleHook
DependsOn: ScalingGroupEnable
Properties:
ScalingGroupId:
Ref: ScalingGroup
LifecycleHookName: scale-in-hook
LifecycleTransition: SCALE_IN
DefaultResult: CONTINUE
HeartbeatTimeout: 300
Outputs:
ScalingGroupId:
Description:
zh-cn: "\u4f38\u7f29\u7ec4ID\u3002"
en: Scaling group ID.
Label:
zh-cn: "\u4f38\u7f29\u7ec4ID"
en: Scaling Group ID
Value:
Fn::GetAtt:
- ScalingGroup
- ScalingGroupId
ScalingConfigurationId:
Description:
zh-cn: "\u4f38\u7f29\u914d\u7f6eID\u3002"
en: Scaling configuration ID.
Label:
zh-cn: "\u4f38\u7f29\u914d\u7f6eID"
en: Scaling Configuration ID
Value:
Fn::GetAtt:
- ScalingConfiguration
- ScalingConfigurationId
LoadBalancerId:
Description:
zh-cn: "\u8d1f\u8f7d\u5747\u8861\u5b9e\u4f8bID\u3002"
en: Load balancer ID.
Label:
zh-cn: "\u8d1f\u8f7d\u5747\u8861ID"
en: Load Balancer ID
Value:
Ref: LoadBalancer
LoadBalancerPublicIp:
Description:
zh-cn: "\u8d1f\u8f7d\u5747\u8861\u516c\u7f51IP\u3002"
en: Load balancer public IP.
Label:
zh-cn: "\u8d1f\u8f7d\u5747\u8861\u516c\u7f51IP"
en: Load Balancer Public IP
Value:
Fn::GetAtt:
- LoadBalancer
- IpAddress
Console.LoadBalancerUrl:
Description:
zh-cn: "\u8d1f\u8f7d\u5747\u8861\u8bbf\u95ee\u5730\u5740\u3002"
en: Load balancer access URL.
Label:
zh-cn: "\u8d1f\u8f7d\u5747\u8861\u5730\u5740"
en: Load Balancer URL
Value:
Fn::Sub:
- http://${Ip}
- Ip:
Fn::GetAtt:
- LoadBalancer
- IpAddress
SecurityGroupId:
Description:
zh-cn: "\u5b89\u5168\u7ec4ID\u3002"
en: Security group ID.
Label:
zh-cn: "\u5b89\u5168\u7ec4ID"
en: Security Group ID
Value:
Ref: SecurityGroup
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- ZoneId
- InstanceType
- ImageId
- SystemDiskCategory
- InstancePassword
- Parameters:
- MaxSize
- MinSize
- DesiredCapacity
- DataDiskSize{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": {
"zh-cn": "\u521b\u5efa\u5b8c\u6574\u7684\u5f39\u6027\u4f38\u7f29\u65b9\u6848,\u5305\u542bVPC\u7f51\u7edc、CLB\u8d1f\u8f7d\u5747\u8861、\u591a\u5b9e\u4f8b\u89c4\u683c\u4f38\u7f29\u914d\u7f6e(\u542b\u62a2\u5360\u5f0f\u5b9e\u4f8b\u7b56\u7565\u548c\u6570\u636e\u76d8)、\u751f\u547d\u5468\u671f\u6302\u94a9(\u81ea\u52a8\u90e8\u7f72\u5e94\u7528)、\u4f38\u7f29\u7ec4\u542f\u7528\u4e0e\u8d1f\u8f7d\u5747\u8861\u6302\u8f7d,\u5b9e\u73b0\u9ad8\u53ef\u7528\u81ea\u52a8\u4f38\u7f29\u4e0e\u81ea\u52a8\u8fd0\u7ef4。",
"en": "Create a complete auto-scaling solution including VPC network, CLB load balancer, multi-instance-type scaling configuration with spot strategy and data disks, lifecycle hooks for automatic application deployment, scaling group enablement and load balancer attachment, achieving high-availability auto-scaling and automated O&M."
},
"Parameters": {
"ZoneId": {
"Type": "String",
"Label": {
"zh-cn": "\u53ef\u7528\u533a",
"en": "Availability Zone"
},
"Description": {
"zh-cn": "\u9009\u62e9\u53ef\u7528\u533a。",
"en": "Select an availability zone."
},
"AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
"AssociationPropertyMetadata": {
"AutoSelectFirst": true
}
},
"InstanceType": {
"Type": "String",
"Label": {
"zh-cn": "\u4e3b\u5b9e\u4f8b\u89c4\u683c",
"en": "Primary Instance Type"
},
"Description": {
"zh-cn": "\u9009\u62e9ECS\u4e3b\u5b9e\u4f8b\u89c4\u683c(\u4f38\u7f29\u914d\u7f6e\u5c06\u540c\u65f6\u914d\u7f6e\u5907\u9009\u89c4\u683c\u4ee5\u5e94\u5bf9\u5e93\u5b58\u4e0d\u8db3)。",
"en": "Select the primary ECS instance type (the scaling configuration will also configure alternate types for inventory fallback)."
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"InstanceChargeType": "PostPaid",
"ZoneId": "${ZoneId}"
}
},
"ImageId": {
"Type": "String",
"Label": {
"zh-cn": "\u955c\u50cfID",
"en": "Image ID"
},
"Description": {
"zh-cn": "\u9009\u62e9\u7528\u4e8e\u521b\u5efa\u5b9e\u4f8b\u7684\u955c\u50cf。",
"en": "Select an image for creating instances."
},
"AssociationProperty": "ALIYUN::ECS::Image::ImageId",
"AssociationPropertyMetadata": {
"SupportedImageOwnerAlias": [
"system",
"self",
"others"
]
}
},
"SystemDiskCategory": {
"Type": "String",
"Label": {
"zh-cn": "\u7cfb\u7edf\u76d8\u7c7b\u578b",
"en": "System Disk Category"
},
"Description": {
"zh-cn": "\u9009\u62e9\u7cfb\u7edf\u76d8\u7c7b\u578b。",
"en": "Select a system disk category."
},
"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
"AssociationPropertyMetadata": {
"InstanceType": "${InstanceType}"
},
"Default": "cloud_essd"
},
"InstancePassword": {
"Type": "String",
"Label": {
"zh-cn": "\u5b9e\u4f8b\u5bc6\u7801",
"en": "Instance Password"
},
"Description": {
"zh-cn": "\u670d\u52a1\u5668\u767b\u5f55\u5bc6\u7801,\u957f\u5ea68-30,\u5fc5\u987b\u5305\u542b\u4e09\u9879(\u5927\u5199\u5b57\u6bcd、\u5c0f\u5199\u5b57\u6bcd、\u6570\u5b57、\u7279\u6b8a\u7b26\u53f7)。",
"en": "Server login password, 8-30 characters, must contain three types (uppercase, lowercase, numbers, special symbols)."
},
"NoEcho": true,
"AssociationProperty": "ALIYUN::ECS::Instance::Password",
"ConstraintDescription": {
"zh-cn": "\u957f\u5ea68-30,\u5fc5\u987b\u5305\u542b\u4e09\u9879(\u5927\u5199\u5b57\u6bcd、\u5c0f\u5199\u5b57\u6bcd、\u6570\u5b57、\u7279\u6b8a\u7b26\u53f7)。",
"en": "Length 8-30, must contain three types (uppercase, lowercase, numbers, special symbols)."
}
},
"MaxSize": {
"Type": "Number",
"Label": {
"zh-cn": "\u6700\u5927\u5b9e\u4f8b\u6570",
"en": "Max Size"
},
"Description": {
"zh-cn": "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u4e2a\u6570\u7684\u6700\u5927\u503c。",
"en": "The maximum number of ECS instances in the scaling group."
},
"Default": 10,
"MinValue": 0,
"MaxValue": 1000
},
"MinSize": {
"Type": "Number",
"Label": {
"zh-cn": "\u6700\u5c0f\u5b9e\u4f8b\u6570",
"en": "Min Size"
},
"Description": {
"zh-cn": "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u4e2a\u6570\u7684\u6700\u5c0f\u503c。",
"en": "The minimum number of ECS instances in the scaling group."
},
"Default": 2,
"MinValue": 0,
"MaxValue": 1000
},
"DesiredCapacity": {
"Type": "Number",
"Label": {
"zh-cn": "\u671f\u671b\u5b9e\u4f8b\u6570",
"en": "Desired Capacity"
},
"Description": {
"zh-cn": "\u4f38\u7f29\u7ec4\u5185ECS\u5b9e\u4f8b\u7684\u671f\u671b\u6570\u91cf。",
"en": "The desired number of ECS instances in the scaling group."
},
"Default": 2,
"MinValue": 0,
"MaxValue": 1000
},
"DataDiskSize": {
"Type": "Number",
"Label": {
"zh-cn": "\u6570\u636e\u76d8\u5927\u5c0f(GB)",
"en": "Data Disk Size (GB)"
},
"Description": {
"zh-cn": "\u6570\u636e\u76d8\u5927\u5c0f,\u5355\u4f4dGB。",
"en": "Data disk size in GB."
},
"Default": 100,
"MinValue": 20,
"MaxValue": 32768
}
},
"Resources": {
"Vpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"VpcName": {
"Fn::Sub": "${ALIYUN::StackName}-vpc"
},
"CidrBlock": "192.168.0.0/16"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"VSwitchName": {
"Fn::Sub": "${ALIYUN::StackName}-vsw"
},
"VpcId": {
"Ref": "Vpc"
},
"CidrBlock": "192.168.0.0/24",
"ZoneId": {
"Ref": "ZoneId"
}
}
},
"SecurityGroup": {
"Type": "ALIYUN::ECS::SecurityGroup",
"Properties": {
"SecurityGroupName": {
"Fn::Sub": "${ALIYUN::StackName}-sg"
},
"VpcId": {
"Ref": "Vpc"
},
"SecurityGroupIngress": [
{
"PortRange": "22/22",
"Priority": 1,
"SourceCidrIp": "0.0.0.0/0",
"IpProtocol": "tcp"
},
{
"PortRange": "80/80",
"Priority": 1,
"SourceCidrIp": "0.0.0.0/0",
"IpProtocol": "tcp"
},
{
"PortRange": "443/443",
"Priority": 1,
"SourceCidrIp": "0.0.0.0/0",
"IpProtocol": "tcp"
}
],
"SecurityGroupEgress": [
{
"PortRange": "-1/-1",
"Priority": 1,
"IpProtocol": "all",
"DestCidrIp": "0.0.0.0/0",
"NicType": "intranet"
}
]
}
},
"LoadBalancer": {
"Type": "ALIYUN::SLB::LoadBalancer",
"Properties": {
"LoadBalancerName": {
"Fn::Sub": "${ALIYUN::StackName}-slb"
},
"AddressType": "internet",
"VpcId": {
"Ref": "Vpc"
},
"VSwitchId": {
"Ref": "VSwitch"
},
"LoadBalancerSpec": "slb.s2.medium",
"Bandwidth": 5
}
},
"LoadBalancerListener": {
"Type": "ALIYUN::SLB::Listener",
"Properties": {
"LoadBalancerId": {
"Ref": "LoadBalancer"
},
"ListenerPort": 80,
"BackendServerPort": 80,
"Bandwidth": 5,
"HealthCheck": {
"HealthCheckType": "http",
"Interval": 5,
"Timeout": 3,
"URI": "/",
"HttpCode": "http_2xx,http_3xx,http_4xx,http_5xx",
"HealthyThreshold": 2,
"UnhealthyThreshold": 3,
"Port": 80
},
"Scheduler": "wrr",
"Protocol": "http"
}
},
"ScalingGroup": {
"Type": "ALIYUN::ESS::ScalingGroup",
"DependsOn": "SecurityGroup",
"Properties": {
"MinSize": {
"Ref": "MinSize"
},
"MaxSize": {
"Ref": "MaxSize"
},
"DesiredCapacity": {
"Ref": "DesiredCapacity"
},
"DefaultCooldown": 300,
"ScalingGroupName": "web-autoscaling-group",
"VpcId": {
"Ref": "Vpc"
},
"VSwitchId": {
"Ref": "VSwitch"
},
"HealthCheckType": "ECS",
"MultiAZPolicy": "PRIORITY",
"RemovalPolicys": [
"OldestScalingConfiguration",
"OldestInstance"
],
"GroupDeletionProtection": false,
"ScalingPolicy": "release",
"LoadBalancerIds": [
{
"Ref": "LoadBalancer"
}
]
}
},
"ScalingConfiguration": {
"Type": "ALIYUN::ESS::ScalingConfiguration",
"DependsOn": "ScalingGroup",
"Properties": {
"ScalingGroupId": {
"Ref": "ScalingGroup"
},
"SecurityGroupId": {
"Ref": "SecurityGroup"
},
"ImageId": {
"Ref": "ImageId"
},
"InstanceType": {
"Ref": "InstanceType"
},
"SystemDiskCategory": {
"Ref": "SystemDiskCategory"
},
"SystemDiskSize": 40,
"SystemDiskPerformanceLevel": "PL1",
"ScalingConfigurationName": "web-scaling-config",
"Password": {
"Ref": "InstancePassword"
},
"InternetMaxBandwidthOut": 5,
"InternetChargeType": "PayByTraffic",
"IoOptimized": "optimized",
"SpotStrategy": "SpotWithPriceLimit",
"SpotPriceLimit": 0.5,
"SpotDuration": 1,
"LoadBalancerWeight": 50,
"DiskMappings": [
{
"Category": {
"Ref": "SystemDiskCategory"
},
"Size": {
"Ref": "DataDiskSize"
},
"DiskName": "data-disk",
"DeleteWithInstance": true,
"PerformanceLevel": "PL1"
}
],
"TagList": [
{
"Key": "CreatedBy",
"Value": "ROS"
},
{
"Key": "Environment",
"Value": "Production"
}
]
}
},
"ScalingGroupEnable": {
"Type": "ALIYUN::ESS::ScalingGroupEnable",
"Properties": {
"ScalingGroupId": {
"Ref": "ScalingGroup"
},
"ScalingConfigurationId": {
"Ref": "ScalingConfiguration"
},
"ScalingRuleArisExecuteVersion": 0
}
},
"LifecycleHookForScaleOut": {
"Type": "ALIYUN::ESS::LifecycleHook",
"DependsOn": "ScalingGroupEnable",
"Properties": {
"ScalingGroupId": {
"Ref": "ScalingGroup"
},
"LifecycleHookName": "scale-out-hook",
"LifecycleTransition": "SCALE_OUT",
"DefaultResult": "CONTINUE",
"HeartbeatTimeout": 600,
"NotificationArn": {
"Fn::Join": [
"",
[
"acs:ess:",
{
"Ref": "ALIYUN::Region"
},
":",
{
"Ref": "ALIYUN::TenantId"
},
":",
"oos/ACS-ESS-LifeCycleRunCommand"
]
]
},
"NotificationMetadata": {
"Fn::Sub": "{\n \"commandContent\": \"#!/bin/bash\\nyum install -y nginx\\nsystemctl enable nginx\\nsystemctl start nginx\",\n \"commandType\": \"RunShellScript\"\n}"
}
}
},
"LifecycleHookForScaleIn": {
"Type": "ALIYUN::ESS::LifecycleHook",
"DependsOn": "ScalingGroupEnable",
"Properties": {
"ScalingGroupId": {
"Ref": "ScalingGroup"
},
"LifecycleHookName": "scale-in-hook",
"LifecycleTransition": "SCALE_IN",
"DefaultResult": "CONTINUE",
"HeartbeatTimeout": 300
}
}
},
"Outputs": {
"ScalingGroupId": {
"Description": {
"zh-cn": "\u4f38\u7f29\u7ec4ID。",
"en": "Scaling group ID."
},
"Label": {
"zh-cn": "\u4f38\u7f29\u7ec4ID",
"en": "Scaling Group ID"
},
"Value": {
"Fn::GetAtt": [
"ScalingGroup",
"ScalingGroupId"
]
}
},
"ScalingConfigurationId": {
"Description": {
"zh-cn": "\u4f38\u7f29\u914d\u7f6eID。",
"en": "Scaling configuration ID."
},
"Label": {
"zh-cn": "\u4f38\u7f29\u914d\u7f6eID",
"en": "Scaling Configuration ID"
},
"Value": {
"Fn::GetAtt": [
"ScalingConfiguration",
"ScalingConfigurationId"
]
}
},
"LoadBalancerId": {
"Description": {
"zh-cn": "\u8d1f\u8f7d\u5747\u8861\u5b9e\u4f8bID。",
"en": "Load balancer ID."
},
"Label": {
"zh-cn": "\u8d1f\u8f7d\u5747\u8861ID",
"en": "Load Balancer ID"
},
"Value": {
"Ref": "LoadBalancer"
}
},
"LoadBalancerPublicIp": {
"Description": {
"zh-cn": "\u8d1f\u8f7d\u5747\u8861\u516c\u7f51IP。",
"en": "Load balancer public IP."
},
"Label": {
"zh-cn": "\u8d1f\u8f7d\u5747\u8861\u516c\u7f51IP",
"en": "Load Balancer Public IP"
},
"Value": {
"Fn::GetAtt": [
"LoadBalancer",
"IpAddress"
]
}
},
"Console.LoadBalancerUrl": {
"Description": {
"zh-cn": "\u8d1f\u8f7d\u5747\u8861\u8bbf\u95ee\u5730\u5740。",
"en": "Load balancer access URL."
},
"Label": {
"zh-cn": "\u8d1f\u8f7d\u5747\u8861\u5730\u5740",
"en": "Load Balancer URL"
},
"Value": {
"Fn::Sub": [
"http://${Ip}",
{
"Ip": {
"Fn::GetAtt": [
"LoadBalancer",
"IpAddress"
]
}
}
]
}
},
"SecurityGroupId": {
"Description": {
"zh-cn": "\u5b89\u5168\u7ec4ID。",
"en": "Security group ID."
},
"Label": {
"zh-cn": "\u5b89\u5168\u7ec4ID",
"en": "Security Group ID"
},
"Value": {
"Ref": "SecurityGroup"
}
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"ZoneId",
"InstanceType",
"ImageId",
"SystemDiskCategory",
"InstancePassword"
]
},
{
"Parameters": [
"MaxSize",
"MinSize",
"DesiredCapacity",
"DataDiskSize"
]
}
]
}
}
}