El tipo de recurso ALIYUN::ESS::ScalingConfiguration crea una configuración de escalado para un grupo de escalado.
Sintaxis
{
"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
}
}
Propiedades
Propiedad | Tipo | Obligatorio | Editable | Descripción | Restricciones |
ScalingGroupId | String | Sí | No | ID del grupo de escalado al que pertenece la configuración de escalado. | Ninguna. |
Affinity | String | No | Sí | Indica si la instancia de host dedicado está asociada a un host dedicado. | Valores válidos:
|
Cpu | Integer | No | Sí | Número de vCPU. | Especifique Cpu y Memory de forma conjunta para definir un rango de tipos de instancia. Por ejemplo, Cpu=2 y Memory=16 definen todos los tipos de instancia con 2 vCPU y 16 GiB de memoria. Auto Scaling determina los tipos de instancia disponibles según la optimización de E/S, las zonas y otros factores, y crea la instancia de menor precio. |
CpuOptions | Map | No | Sí | Opciones de CPU. | Para obtener más información, consulte CpuOptions properties. |
CreditSpecification | String | No | Sí | Modo de operación de las instancias ampliables. | Valores válidos:
Para obtener más información sobre el rendimiento de las instancias, consulte Burstable instances. |
DedicatedHostId | String | No | Sí | Indica si las instancias de ECS se crean en un host dedicado. | Los hosts dedicados no admiten preemptible instances. Si especifica DedicatedHostId, se ignoran SpotStrategy y SpotPriceLimit. Llame a DescribeDedicatedHosts para consultar los ID de los hosts dedicados. |
DeploymentSetId | String | No | No | ID del conjunto de despliegue. | Ninguna. |
DiskMappings | List | No | Sí | Discos que se van a adjuntar. | Se admite un máximo de 16 discos. Para obtener más información, consulte DiskMappings properties. |
HostName | String | No | Sí | Nombre de host del servidor en la nube. | Un punto (.) o un guion (-) no puede ser el primer ni el último carácter, y no pueden aparecer de forma consecutiva. Los requisitos de nomenclatura varían según el tipo de instancia:
|
HpcClusterId | String | No | No | ID del clúster de E-HPC al que pertenece la instancia. | Ninguna. |
ImageFamily | String | No | Sí | Nombre de la familia de imágenes. | Establezca esta propiedad para obtener la imagen disponible más reciente de la familia de imágenes y crear la instancia. No es posible establecerla si ya se configuró ImageId. |
ImageId | String | No | Sí | ID de la imagen de la instancia. Incluye imágenes públicas, personalizadas y de Alibaba Cloud Marketplace. | Para obtener más información, consulte Public images. |
ImageName | String | No | Sí | Nombre del archivo de imagen. | Ninguna. |
ImageOptionsLoginAsNonRoot | Boolean | No | No | Indica si la instancia de ECS utiliza la cuenta ecs-user para iniciar sesión. | Valores válidos:
|
InstanceDescription | String | No | Sí | Descripción de la instancia de ECS. | La descripción debe contener entre 2 y 256 caracteres en inglés o chino. No puede comenzar con |
InstanceId | String | No | No | ID de la instancia de la configuración de escalado. | Ninguna. |
InstanceName | String | No | Sí | Nombre de las instancias creadas con base en la configuración de escalado actual. | Ninguna. |
InstancePatternInfos | List | No | Sí | Conjunto de información para la configuración inteligente. | Para obtener más información, consulte InstancePatternInfos properties. |
InstanceType | String | No | Sí | Tipo de instancia. | Para obtener más información, consulte Instance family overview. |
InstanceTypeOverrides | List | No | Sí | Información sobre los tipos de instancia especificados. | Para obtener más información, consulte InstanceTypeOverrides properties. |
InstanceTypes | List | No | Sí | Parámetro para varios tipos de instancia. | Si se especifica InstanceTypes, InstanceType no surte efecto. Es posible configurar hasta 10 tipos de instancia en una sola configuración de escalado. Su prioridad disminuye según el orden de los elementos de la lista. Cuando no se logra crear una instancia con un tipo de mayor prioridad, Auto Scaling selecciona automáticamente el siguiente tipo de menor prioridad. |
InternetChargeType | String | No | Sí | Método de facturación del ancho de banda de acceso a la red pública. | Valores válidos:
|
InternetMaxBandwidthIn | Integer | No | No | Ancho de banda público entrante máximo. | Unidad: Mbps. Valores válidos: de 1 a 200. Si no especifica esta propiedad, el ancho de banda entrante se establece automáticamente en 200 Mbps. El tráfico de datos entrante es gratuito y esta propiedad nunca genera cargos. |
InternetMaxBandwidthOut | Integer | No | Sí | Ancho de banda público saliente máximo. | Valores válidos:
Unidad: Mbps. |
IoOptimized | String | No | Sí | Indica si se crea una instancia optimizada para E/S. | Valores válidos:
|
Ipv6AddressCount | Integer | No | Sí | Número de direcciones IPv6 generadas aleatoriamente que se asignan a la interfaz de red elástica. | Ninguna. |
KeyPairName | String | No | Sí | Nombre de la key pair vinculada a la instancia. |
|
LoadBalancerWeight | Integer | No | Sí | Peso de la instancia de ECS cuando actúa como servidor de backend del balanceador de carga. | Valores válidos: de 1 a 100. Valor predeterminado: 50. |
Memory | Integer | No | Sí | Tamaño de la memoria. | Unidad: GiB. Especifique Cpu y Memory de forma conjunta para definir un rango de tipos de instancia. Por ejemplo, Cpu=2 y Memory=16 definen todos los tipos de instancia con 2 vCPU y 16 GiB de memoria. Auto Scaling determina los tipos de instancia disponibles según la optimización de E/S, las zonas y otros factores, y crea la instancia de menor precio. |
Password | String | No | Sí | Contraseña de la instancia de ECS. | La contraseña debe contener entre 8 y 30 caracteres e incluir tres de las siguientes categorías: letras mayúsculas, letras minúsculas, dígitos y caracteres especiales. Se admiten los siguientes caracteres especiales: La contraseña de una instancia Windows no puede comenzar con una barra diagonal (/). Nota Si especifica Password, utilice HTTPS para enviar las solicitudes y evitar que la contraseña quede expuesta. |
PasswordInherit | Boolean | No | Sí | Indica si se utiliza la contraseña preconfigurada en la imagen. | Si utiliza la contraseña preconfigurada de la imagen, asegúrese de que dicha imagen cuente con una contraseña establecida. |
PrivatePoolOptions | Map | No | Sí | Configuración del pool privado para iniciar instancias. | Para obtener más información, consulte PrivatePoolOptions properties. |
RamRoleName | String | No | Sí | Nombre del rol de RAM de la instancia. | Utilice la API ListRoles de RAM para consultar el nombre del rol. Para obtener más información, consulte CreateRole y ListRoles. |
ResourceGroupId | String | No | Sí | ID del resource group al que pertenece la instancia. | Ninguna. |
ScalingConfigurationName | String | No | Sí | Nombre de la configuración de escalado. | El nombre debe contener entre 2 y 64 caracteres. Debe comenzar con un dígito, una letra inglesa o un carácter chino, y puede incluir dígitos, letras inglesas, caracteres chinos, guiones bajos (_), guiones (-) y puntos (.). El nombre debe ser único dentro de un grupo de escalado en la misma región. Si no especifica esta propiedad, se utiliza de forma predeterminada el ID de la configuración de escalado. |
SecurityEnhancementStrategy | String | No | No | Indica si se habilita el refuerzo de seguridad. | Valores válidos:
|
SecurityGroupId | String | No | Sí | security group al que pertenece la instancia. | Ninguna. |
SecurityGroupIds | List | No | Sí | Agrega la instancia de ECS a varios security groups. | Nota No es posible especificar SecurityGroupId y SecurityGroupIds al mismo tiempo. |
SpotDuration | Integer | No | Sí | Periodo de retención de una preemptible instance. | Unidad: horas. Valores válidos:
|
SpotInterruptionBehavior | String | No | Sí | Comportamiento ante interrupciones de una preemptible instance. | Ninguna. |
SpotPriceLimit | Number | No | Sí | Precio máximo por hora de la instancia. | Se admiten hasta tres decimales. Esta propiedad surte efecto cuando SpotStrategy se establece en SpotWithPriceLimit. Su valor se sobrescribe mediante SpotPriceLimitForInstanceType. |
SpotPriceLimitForInstanceType | Map | No | Sí | Tipos de instancia y sus ofertas correspondientes para preemptible instances. | Formato: Esta propiedad surte efecto cuando SpotStrategy se establece en SpotWithPriceLimit. Es posible configurar hasta 10 pares de instancia y precio. |
SpotStrategy | String | No | Sí | Estrategia de preemptible instance para una instancia pay-as-you-go. | Valores válidos:
|
SystemDiskAutoSnapshotPolicyId | String | No | Sí | ID de la directiva de instantáneas automáticas que utiliza el disco del sistema. | Ninguna. |
SystemDiskBurstingEnabled | Boolean | No | No | Indica si se habilita el rendimiento ampliable para el disco del sistema. | Valores válidos:
|
SystemDiskCategories | List | No | Sí | Varias categorías de disco para el disco del sistema. | Si una categoría de disco de mayor prioridad no está disponible, Auto Scaling intenta crear automáticamente el disco del sistema con la siguiente categoría de menor prioridad. Valores válidos:
|
SystemDiskCategory | String | No | Sí | Categoría del disco del sistema. | Valores válidos:
Cuando InstanceType corresponde a la serie I y la instancia no está optimizada para E/S, el valor predeterminado es cloud. En caso contrario, el valor predeterminado es cloud_efficiency. |
SystemDiskDescription | String | No | Sí | Descripción del disco del sistema. | Ninguna. |
SystemDiskDiskName | String | No | Sí | Nombre del disco del sistema. | Ninguna. |
SystemDiskEncryptAlgorithm | String | No | Sí | Algoritmo de cifrado que utiliza el disco del sistema. | Valores válidos:
|
SystemDiskEncrypted | Boolean | No | Sí | Indica si el disco del sistema está cifrado. | Valores válidos:
|
SystemDiskKMSKeyId | String | No | Sí | ID de la clave de KMS que utiliza el disco del sistema. | Ninguna. |
SystemDiskPerformanceLevel | String | No | Sí | Nivel de rendimiento de un ESSD utilizado como disco del sistema. | Valores válidos:
Para obtener información sobre cómo seleccionar un nivel de rendimiento de ESSD, consulte ESSDs. |
SystemDiskProvisionedIops | Integer | No | Sí | Métrica de rendimiento de IOPS (operaciones de entrada y salida por segundo) aprovisionadas del disco del sistema. | Ninguna. |
SystemDiskSize | Integer | No | Sí | Tamaño del disco del sistema. | Valores válidos: de 20 a 500. Valor predeterminado: 40. Unidad: GiB. Si se utiliza una imagen personalizada para crear el disco del sistema, su tamaño debe ser mayor o igual al de dicha imagen. |
TagList | List | No | Sí | Etiquetas de la instancia. | Las etiquetas se transmiten como pares clave-valor. Utilice hasta cinco etiquetas con el siguiente formato: Para obtener más información, consulte TagList properties. |
Tenancy | String | No | Sí | Indica si la instancia se crea en un host dedicado. | Valores válidos:
|
UserData | String | No | Sí | Datos de usuario que se transmiten al crear una instancia. | El contenido no debe superar los 16 KB. No se requiere codificación Base64. Escape los caracteres especiales con una barra diagonal inversa (\). |
ZoneId | String | No | Sí | ID de la zona a la que pertenece la instancia. | Ninguna. |
Sintaxis 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
}
]
Propiedades de DiskMappings
Propiedad | Tipo | Obligatorio | Editable | Descripción | Restricciones |
AutoSnapshotPolicyId | String | No | No | ID de la directiva de instantáneas automáticas que utiliza el disco de datos. | Ninguna. |
BurstingEnabled | Boolean | No | No | Indica si se habilita el rendimiento ampliable para el disco de datos. | Valores válidos:
|
Categories | List | No | No | Varias categorías de disco para el disco de datos. | La primera categoría de disco tiene la prioridad más alta, y las demás cuentan con prioridades decrecientes. Si una categoría de mayor prioridad no está disponible, Auto Scaling intenta crear automáticamente el disco de datos con la siguiente categoría de menor prioridad. Valores válidos:
|
Category | String | No | No | Categoría del disco de datos. | Valores válidos:
|
DeleteWithInstance | Boolean | No | No | Indica si el disco de datos se libera junto con la instancia. | Valores válidos:
|
Description | String | No | No | Descripción del disco de datos. | La longitud debe ser de 2 a 256 caracteres. No puede comenzar con |
Device | String | No | No | Punto de montaje del disco de datos. | Si no se especifica esta propiedad, el sistema la asigna cuando se crean automáticamente las instancias de ECS. Los valores comienzan en |
DiskName | String | No | No | Nombre del disco de datos. | La longitud debe ser de 2 a 128 caracteres. Debe comenzar con una letra inglesa o un carácter chino, y no puede empezar con |
Encrypted | String | No | No | Indica si el disco de datos está cifrado. | Valores válidos:
|
KMSKeyId | String | No | No | ID de la clave de KMS para el disco de datos. | Ninguna. |
PerformanceLevel | String | No | No | Nivel de rendimiento de un ESSD utilizado como disco de datos. | Valores válidos:
Para obtener información sobre cómo seleccionar un nivel de rendimiento de ESSD, consulte ESSDs. |
ProvisionedIops | Integer | No | No | Métrica de rendimiento de IOPS (operaciones de entrada y salida por segundo) aprovisionadas del disco de datos. | Nota IOPS es la cantidad de operaciones de E/S que se pueden procesar por segundo e indica la capacidad de lectura y escritura del block storage. Unidad: operaciones. |
Size | String | No | No | Tamaño del disco de datos. | Valores válidos:
Unidad: GB. Una vez especificada esta propiedad, el tamaño del disco debe ser mayor o igual al tamaño de la instantánea indicada en |
SnapshotId | String | No | No | Instantánea utilizada para crear el disco de datos. | Una vez especificada esta propiedad, se ignora Size y el tamaño real del disco corresponde al de la instantánea indicada. Si la instantánea se creó el 15 de julio de 2013 o antes, la llamada se rechaza y se muestra |
Sintaxis de PrivatePoolOptions
"PrivatePoolOptions":
{
"MatchCriteria": String,
"Id": String
}
Propiedades de PrivatePoolOptions
Propiedad | Tipo | Obligatorio | Editable | Descripción | Restricciones |
Id | String | No | Sí | ID del pool privado. | ID de un servicio de garantía de elasticidad o de reserva de capacidad. |
MatchCriteria | String | No | Sí | Opción de capacidad del pool privado para iniciar instancias. | Un servicio de garantía de elasticidad o de reserva de capacidad genera capacidad de pool privado una vez que entra en vigor para el inicio de instancias. Valores válidos:
|
Sintaxis de InstanceTypeOverrides
"InstanceTypeOverrides": [
{
"InstanceType": String,
"WeightedCapacity": Integer
}
]
Propiedades de InstanceTypeOverrides
Propiedad | Tipo | Obligatorio | Editable | Descripción | Restricciones |
InstanceType | String | No | Sí | Tipo de instancia especificado. | Para escalar el grupo de escalado según la capacidad del tipo de instancia, especifique esta propiedad junto con WeightedCapacity. |
WeightedCapacity | Integer | No | Sí | Peso del tipo de instancia especificado. | La cantidad de vCPU, el tamaño de la memoria y otras métricas de rendimiento pueden variar según el tipo de instancia. Configure distintos pesos para cada tipo de instancia según sus necesidades. Por ejemplo:
Para alcanzar la capacidad deseada, el grupo de escalado agrega dos instancias ecs.c5.xlarge. |
Sintaxis de InstancePatternInfos
"InstancePatternInfos": [
{
"BurstablePerformance": String,
"Architectures": List,
"InstanceFamilyLevel": String,
"Memory": Number,
"MaxPrice": Number,
"ExcludedInstanceTypes": List,
"Cores": Integer
}
]
Propiedades de InstancePatternInfos
Propiedad | Tipo | Obligatorio | Editable | Descripción | Restricciones | |
Architectures | List | No | Sí | Tipo de arquitectura del tipo de instancia. | Valores válidos:
Predeterminado: todos los tipos de arquitectura. | |
BurstablePerformance | String | No | No | Indica si el tipo de instancia es ampliable. | Valores válidos:
Valor predeterminado: Include. | |
Cores | Integer | No | Sí | Cantidad de núcleos de vCPU del tipo de instancia en el modo de configuración inteligente. | Se utiliza para filtrar rangos de tipos de instancia que cumplen con los requisitos. Para obtener más información, consulte Instance family overview. Tenga en cuenta lo siguiente:
| |
ExcludedInstanceTypes | List | No | Sí | Tipos de instancia que se van a excluir. | Los comodines () permiten excluir un tipo de instancia individual o una familia completa. Por ejemplo:
| |
InstanceFamilyLevel | String | No | Sí | Nivel de la familia de instancias. | Se utiliza para filtrar rangos de tipos de instancia que cumplen con los requisitos y surte efecto cuando
| |
MaxPrice | Number | No | Sí | Precio máximo por hora aceptable para instancias pay-as-you-go o preemptible instances en el modo de configuración inteligente. | Ninguna. | |
Memory | Number | No | Sí | Tamaño de memoria del tipo de instancia en el modo de configuración inteligente. | Unidad: GiB. Se utiliza para filtrar rangos de tipos de instancia que cumplen con los requisitos. |
Sintaxis de CpuOptions
"CpuOptions":
{
"NestedVirtualization": String
}
Propiedades de CpuOptions
Propiedad | Tipo | Obligatorio | Editable | Descripción | Restricciones |
NestedVirtualization | String | No | Sí | Indica si se habilita la virtualización anidada. | Valores válidos:
|
Sintaxis de TagList
"TagList": [
{
"Key": String,
"Value": String
}
]
Propiedades de TagList
|
Propiedad |
Tipo |
Obligatorio |
Editable |
Descripción |
Restricciones |
|
Key |
String |
Sí |
No |
Clave de la etiqueta. |
La longitud debe ser de 1 a 64 caracteres. No puede comenzar con |
|
Value |
String |
No |
No |
Valor de la etiqueta. |
La longitud debe ser de 0 a 128 caracteres. No puede comenzar con |
Valores de retorno
Fn::GetAtt
ScalingConfigurationId: ID de la configuración de escalado. Lo genera el sistema y es único a nivel global.
ScalingGroupId: ID del grupo de escalado al que pertenece la configuración de escalado.
Ejemplos
Escenario 1: cree una configuración de escalado para un grupo de escalado existente.
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"
]
}
]
}
}
}Escenario 2: cree una red VPC y construya la infraestructura completa del grupo de escalado.
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"
]
}
]
}
}
}Escenario 3: cree una solución completa de escalado automático que incluya un balanceador de carga CLB y hooks de ciclo de vida.
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"
]
}
]
}
}
}