Tipe resource ALIYUN::ESS::ScalingConfiguration digunakan untuk membuat konfigurasi penskalaan pada grup penskalaan.
Sintaksis
{
"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
}
}Properti
Property | Type | Required | Editable | Description | Constraints |
ScalingGroupId | String | Yes | No | ID grup penskalaan tempat konfigurasi penskalaan ini berada. | None. |
Affinity | String | No | Yes | Menentukan apakah instans host khusus dikaitkan dengan host khusus. | Nilai yang valid:
|
Cpu | Integer | No | Yes | Jumlah vCPU. | Anda dapat menentukan Cpu dan Memory bersama-sama untuk mendefinisikan rentang tipe instans. Misalnya, Cpu=2 dan Memory=16 mendefinisikan semua tipe instans dengan 2 vCPU dan memori 16 GiB. Auto Scaling menentukan tipe instans yang tersedia berdasarkan optimasi I/O, zona, dan faktor lainnya, lalu membuat instans dengan harga terendah. |
CpuOptions | Map | No | Yes | Opsi CPU. | Untuk informasi lebih lanjut, lihat properti CpuOptions. |
CreditSpecification | String | No | Yes | Mode operasi instans burstable. | Nilai yang valid:
Untuk informasi lebih lanjut tentang performa instans, lihat Instans burstable. |
DedicatedHostId | String | No | Yes | Menentukan apakah akan membuat instans ECS pada host khusus. | Host khusus tidak mendukung instans preemptible. Jika Anda menentukan DedicatedHostId, SpotStrategy dan SpotPriceLimit akan diabaikan. Panggil DescribeDedicatedHosts untuk mengkueri ID host khusus. |
DeploymentSetId | String | No | No | ID set penyebaran. | None. |
DiskMappings | List | No | Yes | Disk yang akan disambungkan. | Maksimal 16 disk didukung. Untuk informasi lebih lanjut, lihat properti DiskMappings. |
HostName | String | No | Yes | Hostname server cloud. | Titik (.) atau tanda hubung (-) tidak boleh menjadi karakter pertama atau terakhir, serta titik atau tanda hubung tidak boleh berurutan. Persyaratan penamaan untuk tipe instans berbeda adalah sebagai berikut:
|
HpcClusterId | String | No | No | ID kluster E-HPC tempat instans berada. | None. |
ImageFamily | String | No | Yes | Nama keluarga gambar. | Tetapkan properti ini untuk mendapatkan gambar terbaru yang tersedia dalam keluarga gambar guna pembuatan instans. Anda tidak dapat menetapkan properti ini jika ImageId telah ditentukan. |
ImageId | String | No | Yes | ID gambar instans, termasuk gambar publik, gambar kustom, dan gambar Marketplace Alibaba Cloud. | Untuk informasi lebih lanjut, lihat Gambar publik. |
ImageName | String | No | Yes | Nama file gambar. | None. |
ImageOptionsLoginAsNonRoot | Boolean | No | No | Menentukan apakah instans ECS menggunakan akun ecs-user untuk login. | Nilai yang valid:
|
InstanceDescription | String | No | Yes | Deskripsi instans ECS. | Deskripsi harus terdiri dari 2 hingga 256 karakter bahasa Inggris atau Mandarin dan tidak boleh dimulai dengan |
InstanceId | String | No | No | ID instans dari konfigurasi penskalaan. | None. |
InstanceName | String | No | Yes | Nama instans yang dibuat berdasarkan konfigurasi penskalaan saat ini. | None. |
InstancePatternInfos | List | No | Yes | Kumpulan informasi untuk konfigurasi cerdas. | Untuk informasi lebih lanjut, lihat properti InstancePatternInfos. |
InstanceType | String | No | Yes | Tipe instans. | Untuk informasi lebih lanjut, lihat Ikhtisar keluarga instans. |
InstanceTypeOverrides | List | No | Yes | Informasi tentang tipe instans yang ditentukan. | Untuk informasi lebih lanjut, lihat properti InstanceTypeOverrides. |
InstanceTypes | List | No | Yes | Parameter multi-tipe-instans. | Jika InstanceTypes ditentukan, InstanceType tidak berlaku. Anda dapat mengonfigurasi hingga 10 tipe instans dalam satu konfigurasi penskalaan. Prioritasnya menurun sesuai urutan elemen daftar. Jika instans tidak dapat dibuat dengan tipe instans prioritas tinggi, Auto Scaling secara otomatis memilih tipe instans prioritas lebih rendah berikutnya. |
InternetChargeType | String | No | Yes | Metode penagihan untuk bandwidth akses jaringan publik. | Nilai yang valid:
|
InternetMaxBandwidthIn | Integer | No | No | Bandwidth masuk publik maksimum. | Unit: Mbps. Nilai yang valid: 1 hingga 200. Jika Anda tidak menentukan properti ini, bandwidth masuk secara otomatis diatur ke 200 Mbps. Traffic data masuk gratis dan properti ini tidak pernah dikenai biaya. |
InternetMaxBandwidthOut | Integer | No | Yes | Bandwidth keluar publik maksimum. | Nilai yang valid:
Unit: Mbps. |
IoOptimized | String | No | Yes | Menentukan apakah akan membuat instans I/O teroptimasi. | Nilai yang valid:
|
Ipv6AddressCount | Integer | No | Yes | Jumlah alamat IPv6 yang di-generate secara acak untuk diberikan ke antarmuka jaringan elastis. | None. |
KeyPairName | String | No | Yes | Nama pasangan kunci yang diikat ke instans. |
|
LoadBalancerWeight | Integer | No | Yes | Bobot instans ECS ketika menjadi server backend load balancing. | Nilai yang valid: 1 hingga 100. Nilai default: 50. |
Memory | Integer | No | Yes | Ukuran memori. | Unit: GiB. Anda dapat menentukan Cpu dan Memory bersama-sama untuk mendefinisikan rentang tipe instans. Misalnya, Cpu=2 dan Memory=16 mendefinisikan semua tipe instans dengan 2 vCPU dan memori 16 GiB. Auto Scaling menentukan tipe instans yang tersedia berdasarkan optimasi I/O, zona, dan faktor lainnya, lalu membuat instans dengan harga terendah. |
Password | String | No | Yes | Password instans ECS. | Password harus terdiri dari 8 hingga 30 karakter dan harus mencakup tiga kategori karakter: huruf kapital, huruf kecil, angka, dan karakter khusus. Karakter khusus yang didukung: Password untuk instans Windows tidak boleh dimulai dengan garis miring (/). Catatan Jika Anda menentukan Password, gunakan HTTPS untuk mengirim permintaan guna mencegah pengungkapan password. |
PasswordInherit | Boolean | No | Yes | Menentukan apakah akan menggunakan password yang telah ditetapkan sebelumnya dalam gambar. | Jika password yang telah ditetapkan dalam gambar digunakan, pastikan gambar tersebut memiliki password yang telah ditetapkan sebelumnya. |
PrivatePoolOptions | Map | No | Yes | Konfigurasi kolam privat untuk menjalankan instans. | Untuk informasi lebih lanjut, lihat properti PrivatePoolOptions. |
RamRoleName | String | No | Yes | Nama role RAM instans. | Gunakan API RAM ListRoles untuk mengkueri nama role RAM. Untuk informasi lebih lanjut, lihat CreateRole dan ListRoles. |
ResourceGroupId | String | No | Yes | ID kelompok sumber daya tempat instans berada. | None. |
ScalingConfigurationName | String | No | Yes | Nama konfigurasi penskalaan. | Nama harus terdiri dari 2 hingga 64 karakter, dimulai dengan angka, huruf Inggris, atau karakter Mandarin, serta dapat berisi angka, huruf Inggris, karakter Mandarin, garis bawah (_), tanda hubung (-), dan titik (.). Nama harus unik dalam grup penskalaan di wilayah yang sama. Jika Anda tidak menentukan properti ini, ID konfigurasi penskalaan digunakan secara default. |
SecurityEnhancementStrategy | String | No | No | Menentukan apakah akan mengaktifkan penguatan keamanan. | Nilai yang valid:
|
SecurityGroupId | String | No | Yes | Grup keamanan tempat instans berada. | None. |
SecurityGroupIds | List | No | Yes | Menambahkan instans ECS ke beberapa grup keamanan. | Catatan SecurityGroupId dan SecurityGroupIds tidak dapat ditentukan secara bersamaan. |
SpotDuration | Integer | No | Yes | Periode retensi instans preemptible. | Unit: jam. Nilai yang valid:
|
SpotInterruptionBehavior | String | No | Yes | Perilaku interupsi instans preemptible. | None. |
SpotPriceLimit | Number | No | Yes | Harga maksimum per jam instans. | Mendukung hingga tiga tempat desimal. Properti ini berlaku ketika SpotStrategy diatur ke SpotWithPriceLimit. Nilainya ditimpa oleh SpotPriceLimitForInstanceType. |
SpotPriceLimitForInstanceType | Map | No | Yes | Tipe instans dan bid yang sesuai untuk instans preemptible. | Format: Properti ini berlaku ketika SpotStrategy diatur ke SpotWithPriceLimit. Anda dapat mengonfigurasi hingga 10 pasangan instans dan harga. |
SpotStrategy | String | No | Yes | Strategi preemptible instans berbayar sesuai penggunaan. | Nilai yang valid:
|
SystemDiskAutoSnapshotPolicyId | String | No | Yes | ID kebijakan snapshot otomatis yang digunakan oleh disk sistem. | None. |
SystemDiskBurstingEnabled | Boolean | No | No | Menentukan apakah akan mengaktifkan performa burst untuk disk sistem. | Nilai yang valid:
|
SystemDiskCategories | List | No | Yes | Beberapa kategori disk untuk disk sistem. | Jika kategori disk prioritas tinggi tidak tersedia, Auto Scaling secara otomatis mencoba membuat disk sistem dengan kategori prioritas lebih rendah berikutnya. Nilai yang valid:
|
SystemDiskCategory | String | No | Yes | Kategori disk sistem. | Nilai yang valid:
Ketika InstanceType adalah tipe instans seri-I dan instans tidak dioptimalkan I/O, nilai default-nya adalah cloud. Selain itu, nilai default-nya adalah cloud_efficiency. |
SystemDiskDescription | String | No | Yes | Deskripsi disk sistem. | None. |
SystemDiskDiskName | String | No | Yes | Nama disk sistem. | None. |
SystemDiskEncryptAlgorithm | String | No | Yes | Algoritma enkripsi yang digunakan oleh disk sistem. | Nilai yang valid:
|
SystemDiskEncrypted | Boolean | No | Yes | Menentukan apakah disk sistem dienkripsi. | Nilai yang valid:
|
SystemDiskKMSKeyId | String | No | Yes | ID kunci KMS yang digunakan oleh disk sistem. | None. |
SystemDiskPerformanceLevel | String | No | Yes | Tingkat performa ESSD yang digunakan sebagai disk sistem. | Nilai yang valid:
Untuk informasi tentang pemilihan tingkat performa ESSD, lihat ESSD. |
SystemDiskProvisionedIops | Integer | No | Yes | Metrik performa IOPS (Input/Output Operations Per Second) yang disediakan untuk disk sistem. | None. |
SystemDiskSize | Integer | No | Yes | Ukuran disk sistem. | Nilai yang valid: 20 hingga 500. Nilai default: 40. Unit: GiB. Jika gambar kustom digunakan untuk membuat disk sistem, ukuran disk sistem harus lebih besar dari atau sama dengan ukuran gambar kustom. |
TagList | List | No | Yes | Tag instans. | Tag diteruskan sebagai pasangan kunci-nilai. Anda dapat menggunakan hingga lima tag dalam format berikut: Untuk informasi lebih lanjut, lihat properti TagList. |
Tenancy | String | No | Yes | Menentukan apakah akan membuat instans pada host khusus. | Nilai yang valid:
|
UserData | String | No | Yes | Data pengguna yang diteruskan saat instans dibuat. | Konten tidak boleh melebihi 16 KB. Tidak perlu encoding Base64. Escape karakter khusus dengan backslash (\). |
ZoneId | String | No | Yes | ID zona tempat instans berada. | None. |
Sintaksis 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
}
]Properti DiskMappings
Property | Type | Required | Editable | Description | Constraints |
AutoSnapshotPolicyId | String | No | No | ID kebijakan snapshot otomatis yang digunakan oleh disk data. | None. |
BurstingEnabled | Boolean | No | No | Menentukan apakah akan mengaktifkan performa burst untuk disk data. | Nilai yang valid:
|
Categories | List | No | No | Beberapa kategori disk untuk disk data. | Kategori disk pertama memiliki prioritas tertinggi, dan kategori disk lainnya memiliki prioritas menurun. Jika kategori disk prioritas tinggi tidak tersedia, Auto Scaling secara otomatis mencoba membuat disk data dengan kategori prioritas lebih rendah berikutnya. Nilai yang valid:
|
Category | String | No | No | Kategori disk data. | Nilai yang valid:
|
DeleteWithInstance | Boolean | No | No | Menentukan apakah disk data dilepas bersama instans. | Nilai yang valid:
|
Description | String | No | No | Deskripsi disk data. | Panjangnya harus 2 hingga 256 karakter. Tidak boleh dimulai dengan |
Device | String | No | No | Titik pemasangan disk data. | Jika properti ini tidak ditentukan, sistem akan menetapkannya saat instans ECS dibuat secara otomatis. Nilainya dimulai dari |
DiskName | String | No | No | Nama disk data. | Panjangnya harus 2 hingga 128 karakter. Harus dimulai dengan huruf Inggris atau karakter Mandarin dan tidak boleh dimulai dengan |
Encrypted | String | No | No | Menentukan apakah disk data dienkripsi. | Nilai yang valid:
|
KMSKeyId | String | No | No | ID kunci KMS untuk disk data. | None. |
PerformanceLevel | String | No | No | Tingkat performa ESSD yang digunakan sebagai disk data. | Nilai yang valid:
Untuk informasi tentang pemilihan tingkat performa ESSD, lihat ESSD. |
ProvisionedIops | Integer | No | No | Metrik performa IOPS (Input/Output Operations Per Second) yang disediakan untuk disk data. | Catatan IOPS adalah jumlah operasi I/O yang dapat diproses per detik dan menunjukkan kemampuan baca/tulis penyimpanan blok. Unit: operasi. |
Size | String | No | No | Ukuran disk data. | Nilai yang valid:
Unit: GB. Setelah properti ini ditentukan, ukuran disk harus lebih besar dari atau sama dengan ukuran snapshot yang ditentukan oleh |
SnapshotId | String | No | No | Snapshot yang digunakan untuk membuat disk data. | Setelah properti ini ditentukan, Size diabaikan dan ukuran disk aktual adalah ukuran snapshot yang ditentukan. Jika snapshot dibuat pada atau sebelum 15 Juli 2013, panggilan ditolak dan |
Sintaksis PrivatePoolOptions
"PrivatePoolOptions":
{
"MatchCriteria": String,
"Id": String
}Properti PrivatePoolOptions
Property | Type | Required | Editable | Description | Constraints |
Id | String | No | Yes | ID kolam privat. | ID layanan jaminan elastisitas atau reservasi kapasitas. |
MatchCriteria | String | No | Yes | Opsi kapasitas kolam privat untuk menjalankan instans. | Layanan jaminan elastisitas atau reservasi kapasitas menghasilkan kapasitas kolam privat setelah berlaku untuk menjalankan instans. Nilai yang valid:
|
Sintaksis InstanceTypeOverrides
"InstanceTypeOverrides": [
{
"InstanceType": String,
"WeightedCapacity": Integer
}
]Properti InstanceTypeOverrides
Property | Type | Required | Editable | Description | Constraints |
InstanceType | String | No | Yes | Tipe instans yang ditentukan. | Untuk menskalakan grup penskalaan berdasarkan kapasitas tipe instans, tentukan properti ini dan WeightedCapacity bersama-sama. |
WeightedCapacity | Integer | No | Yes | Bobot tipe instans yang ditentukan. | Jumlah vCPU, ukuran memori, dan metrik performa lainnya dapat berbeda-beda tergantung tipe instans. Anda dapat mengonfigurasi bobot berbeda untuk tipe instans berbeda sesuai kebutuhan. Contohnya:
Untuk memenuhi kapasitas yang diinginkan, grup penskalaan menambahkan dua instans ecs.c5.xlarge. |
Sintaksis InstancePatternInfos
"InstancePatternInfos": [
{
"BurstablePerformance": String,
"Architectures": List,
"InstanceFamilyLevel": String,
"Memory": Number,
"MaxPrice": Number,
"ExcludedInstanceTypes": List,
"Cores": Integer
}
]Properti InstancePatternInfos
Property | Type | Required | Editable | Description | Constraints | |
Architectures | List | No | Yes | Tipe arsitektur tipe instans. | Nilai yang valid:
Default: Semua tipe arsitektur. | |
BurstablePerformance | String | No | No | Menentukan apakah tipe instans bersifat burstable. | Nilai yang valid:
Nilai default: Include. | |
Cores | Integer | No | Yes | Jumlah core vCPU tipe instans dalam mode konfigurasi cerdas. | Digunakan untuk memfilter rentang tipe instans yang memenuhi persyaratan. Untuk informasi lebih lanjut, lihat Ikhtisar keluarga instans. Perhatikan hal berikut:
| |
ExcludedInstanceTypes | List | No | Yes | Tipe instans yang dikecualikan. | Karakter wildcard () dapat mengecualikan satu tipe instans atau seluruh keluarga instans. Contohnya:
| |
InstanceFamilyLevel | String | No | Yes | Tingkat keluarga instans. | Digunakan untuk memfilter rentang tipe instans yang memenuhi persyaratan dan berlaku ketika
| |
MaxPrice | Number | No | Yes | Harga maksimum yang dapat diterima per jam untuk instans berbayar sesuai penggunaan atau instans preemptible dalam mode konfigurasi cerdas. | None. | |
Memory | Number | No | Yes | Ukuran memori tipe instans dalam mode konfigurasi cerdas. | Unit: GiB. Digunakan untuk memfilter rentang tipe instans yang memenuhi persyaratan. |
Sintaksis CpuOptions
"CpuOptions":
{
"NestedVirtualization": String
}Properti CpuOptions
Property | Type | Required | Editable | Description | Constraints |
NestedVirtualization | String | No | Yes | Menentukan apakah akan mengaktifkan virtualisasi bersarang. | Nilai yang valid:
|
Sintaksis TagList
"TagList": [
{
"Key": String,
"Value": String
}
]Properti TagList
Property | Type | Required | Editable | Description | Constraints |
Key | String | Yes | No | Kunci tag. | Panjangnya harus 1 hingga 64 karakter. Tidak boleh dimulai dengan |
Value | String | No | No | Nilai tag. | Panjangnya harus 0 hingga 128 karakter. Tidak boleh dimulai dengan |
Nilai kembalian
Fn::GetAtt
ScalingConfigurationId: ID konfigurasi penskalaan yang di-generate oleh sistem dan unik secara global.
ScalingGroupId: ID grup penskalaan tempat konfigurasi penskalaan tersebut berada.
Contoh
Skenario 1: Membuat konfigurasi penskalaan untuk grup penskalaan yang sudah ada.
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"
]
}
]
}
}
}Skenario 2: Membuat jaringan VPC dan membangun infrastruktur lengkap grup penskalaan.
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"
]
}
]
}
}
}Skenario 3: Membuat solusi penskalaan otomatis lengkap yang mencakup load balancing CLB dan kait siklus hidup.
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"
]
}
]
}
}
}