Anda dapat menggunakan sumber daya ALIYUN::ESS::ScalingGroup untuk membuat grup penskalaan. Grup penskalaan merupakan kumpulan instance ECS yang digunakan dalam skenario aplikasi yang sama. Grup penskalaan tidak langsung berlaku setelah dibuat; Anda harus menggunakan ALIYUN::ESS::ScalingGroupEnable untuk mengaktifkannya. Setelah diaktifkan, grup penskalaan dapat memicu aktivitas penskalaan dan mengeksekusi aturan penskalaan.
Sintaks
{
"Type": "ALIYUN::ESS::ScalingGroup",
"Properties": {
"MultiAZPolicy": String,
"DesiredCapacity": Integer,
"NotificationConfigurations": List,
"ProtectedInstances": List,
"LaunchTemplateId": String,
"LaunchTemplateVersion": String,
"ScalingGroupName": String,
"VSwitchIds": List,
"DefaultCooldown": Integer,
"MinSize": Integer,
"GroupDeletionProtection": Boolean,
"MaxSize": Integer,
"InstanceId": String,
"VSwitchId": String,
"LoadBalancerIds": List,
"StandbyInstances": List,
"RemovalPolicys": List,
"HealthCheckType": String,
"DBInstanceIds": List,
"Tags": List,
"OnDemandPercentageAboveBaseCapacity": Integer,
"CompensateWithOnDemand": Boolean,
"ContainerGroupId": String,
"ScalingPolicy": String,
"SpotInstanceRemedy": Boolean,
"SpotInstancePools": Integer,
"OnDemandBaseCapacity": Integer,
"GroupType": String,
"LaunchTemplateOverrides": List,
"AllocationStrategy": String,
"AzBalance": Boolean,
"MaxInstanceLifetime": Integer,
"CustomPolicyARN": String,
"SpotAllocationStrategy": String,
"HealthCheckTypes": List,
"ServerGroups": List,
"ResourceGroupId": String
}
}Properti
Nama properti | Tipe | Diperlukan | Dapat diperbarui | Deskripsi | Batasan |
MinSize | Integer | Ya | Ya | Jumlah minimum instance ECS dalam grup penskalaan. | Nilai valid: 0 hingga 1000. Jika jumlah instance ECS dalam grup penskalaan kurang dari nilai MinSize, Penyesuaian Skala Otomatis secara otomatis membuat instance ECS. |
MaxSize | Integer | Ya | Ya | Jumlah maksimum instance ECS dalam grup penskalaan. | Nilai valid: 0 hingga 1000. Jika jumlah instance ECS dalam grup penskalaan lebih besar dari nilai MaxSize, Penyesuaian Skala Otomatis secara otomatis menghapus instance ECS. |
ScalingGroupName | String | Tidak | Ya | Nama tampilan grup penskalaan. | Nama harus terdiri dari 2 hingga 64 karakter. Nama harus dimulai dengan angka, huruf, atau karakter Tionghoa. Nama dapat berisi huruf, karakter Tionghoa, angka, garis bawah (_), tanda hubung (-), dan titik (.). Nama harus unik dalam wilayah yang sama dan di bawah akun Alibaba Cloud yang sama. Nilai default: ID grup penskalaan. |
LaunchTemplateId | String | Tidak | Ya | ID templat peluncuran. Grup penskalaan menggunakan templat peluncuran untuk mendapatkan informasi konfigurasi pembuatan instance. | Tidak ada |
LaunchTemplateVersion | String | Tidak | Ya | Versi templat peluncuran ECS. | Nilai valid:
|
RemovalPolicys | List | Tidak | Ya | Kebijakan untuk menghapus instance ECS dari grup penskalaan. | Nilai valid:
|
VSwitchId | String | Tidak | Ya | ID vSwitch. | Tidak ada |
LoadBalancerIds | List | Tidak | Ya | ID instance SLB. | Anda dapat menentukan larik JSON yang berisi ID beberapa instance SLB. Anda dapat menentukan hingga lima ID. Pisahkan ID dengan koma (,). |
DefaultCooldown | Integer | Tidak | Ya | Waktu pendinginan setelah aktivitas penskalaan selesai. | Nilai valid: 0 hingga 86.400. Unit: detik. Nilai default: 300. Selama waktu pendinginan, grup penskalaan tidak menjalankan aktivitas penskalaan lainnya. Ini hanya berlaku untuk aktivitas penskalaan yang dipicu oleh tugas berbasis peristiwa yang dibuat di CloudMonitor. |
DBInstanceIds | List | Tidak | Ya | ID instance ApsaraDB RDS. | Anda dapat menentukan larik JSON yang berisi ID beberapa instance RDS. Anda dapat menentukan hingga delapan ID. Pisahkan ID dengan koma (,). |
VSwitchIds | List | Tidak | Ya | ID beberapa vSwitch. | Anda dapat menentukan hingga lima ID vSwitch. Jika Anda menentukan VSwitchIds, parameter VSwitchId akan diabaikan. vSwitch diprioritaskan sesuai urutan yang ditentukan. Jika instance ECS tidak dapat dibuat di zona tempat vSwitch prioritas lebih tinggi berada, vSwitch prioritas berikutnya akan digunakan secara otomatis. |
MultiAZPolicy | String | Tidak | Ya | Kebijakan penskalaan untuk instance ECS dalam grup penskalaan multi-zona. | Nilai valid:
|
NotificationConfigurations | List | Tidak | Ya | Daftar konfigurasi untuk notifikasi peristiwa dan perubahan sumber daya. | Untuk informasi lebih lanjut, lihat Properti NotificationConfigurations. |
ProtectedInstances | List | Tidak | Ya | Jumlah instance ECS yang dilindungi dalam grup penskalaan. | Anda dapat menentukan hingga 1.000 instance. |
StandbyInstances | List | Tidak | Ya | Jumlah instance ECS standby dalam grup penskalaan. | Anda dapat menentukan hingga 1.000 instance. |
HealthCheckTypes | List | Tidak | Ya | Daftar jenis pemeriksaan kesehatan untuk grup penskalaan. | Nilai valid:
|
HealthCheckType | String | Tidak | Ya | Jenis pemeriksaan kesehatan. | Nilai valid:
|
GroupDeletionProtection | Boolean | Tidak | Ya | Menentukan apakah akan mengaktifkan perlindungan penghapusan untuk grup penskalaan. | Nilai valid:
|
DesiredCapacity | Integer | Tidak | Ya | Jumlah instance ECS yang diharapkan dalam grup penskalaan. Penyesuaian Skala Otomatis secara otomatis mempertahankan jumlah instance ECS pada nilai ini. | Nilai harus lebih besar dari atau sama dengan MinSize dan kurang dari atau sama dengan MaxSize. |
InstanceId | String | Tidak | Tidak | ID instance ECS. Saat Anda membuat grup penskalaan, sistem mendapatkan informasi konfigurasi yang diperlukan dari instance yang ditentukan dan secara otomatis membuat konfigurasi penskalaan. | Tidak ada |
Tags | List | Tidak | Ya | Tag. | Anda dapat menambahkan hingga 20 tag. Untuk informasi lebih lanjut, lihat Properti Tags. |
OnDemandPercentageAboveBaseCapacity | Integer | Tidak | Ya | Persentase instance sesuai permintaan di antara instance yang melebihi kapasitas dasar. | Setelah grup penskalaan memenuhi jumlah minimum instance sesuai permintaan (OnDemandBaseCapacity), parameter ini menentukan persentase instance sesuai permintaan di antara instance tambahan. Nilai valid: 0 hingga 100. |
CompensateWithOnDemand | Boolean | Tidak | Ya | Menentukan apakah instance sesuai permintaan dibuat secara otomatis untuk memenuhi jumlah instance ECS yang diperlukan. | Parameter ini hanya berlaku ketika MultiAZPolicy diatur ke COST_OPTIMIZED. Parameter ini menentukan apakah instance sesuai permintaan dibuat secara otomatis untuk memenuhi jumlah instance ECS yang diperlukan jika instance spot yang cukup tidak dapat dibuat karena alasan seperti harga atau stok. Nilai valid:
|
ContainerGroupId | String | Tidak | Tidak | ID instance ECI. | Tidak ada |
ScalingPolicy | String | Tidak | Tidak | Mode reklamasi grup penskalaan. | Nilai valid:
Parameter ScalingPolicy menentukan mode reklamasi grup penskalaan. Namun, tindakan spesifik yang diambil saat instance dihapus dari grup penskalaan ditentukan oleh parameter RemovePolicy operasi RemoveInstances. Untuk informasi selengkapnya, lihat RemoveInstances. |
SpotInstanceRemedy | Boolean | Tidak | Ya | Menentukan apakah instance spot tambahan diaktifkan. | Nilai valid:
|
SpotInstancePools | Integer | Tidak | Ya | Jumlah jenis instance yang tersedia. | Grup penskalaan membuat instance spot secara seimbang di beberapa tipe instance dengan biaya terendah. Nilai valid: 1 hingga 10. |
OnDemandBaseCapacity | Integer | Tidak | Ya | Jumlah minimum instance sesuai permintaan yang diperlukan oleh grup penskalaan. | Nilai valid: 0 hingga 1000. Jika jumlah instance sesuai permintaan kurang dari nilai ini, sistem memprioritaskan pembuatan instance sesuai permintaan. |
GroupType | String | Tidak | Tidak | Tipe instance yang dikelola oleh grup penskalaan. | Nilai valid:
|
LaunchTemplateOverrides | List | Tidak | Ya | Informasi tentang tipe instance yang memperluas templat peluncuran. | Tidak ada |
AllocationStrategy | String | Tidak | Ya | Kebijakan alokasi kapasitas. | Menentukan bagaimana grup penskalaan memilih tipe instance yang tersedia untuk memenuhi kebutuhan kapasitas. Kebijakan alokasi kapasitas berlaku untuk kapasitas On-Demand dan preemptible. Kebijakan ini hanya berlaku ketika parameter Nilai valid:
|
AzBalance | Boolean | Tidak | Ya | Menentukan apakah kapasitas grup penskalaan didistribusikan secara merata di beberapa zona. | Parameter ini hanya berlaku ketika parameter Nilai valid:
|
MaxInstanceLifetime | Integer | Tidak | Ya | Masa pakai maksimum instance dalam grup penskalaan. | Unit: detik. Nilai valid: 86400 hingga Nilai default: null. |
CustomPolicyARN | String | Tidak | Ya | ARN fungsi kebijakan penskalaan masuk kustom. | Parameter ini hanya berlaku ketika kebijakan penghapusan pertama dalam RemovalPolicies diatur ke CustomPolicy. |
SpotAllocationStrategy | String | Tidak | Ya | Kebijakan alokasi untuk kapasitas spot. | Gunakan parameter ini untuk menentukan strategi distribusi secara terpisah untuk kapasitas spot (hanya berlaku ketika parameter Nilai valid:
|
ServerGroups | List | Tidak | Tidak | Konfigurasi grup server Server Load Balancer. | Untuk informasi lebih lanjut, lihat Properti ServerGroups. |
ResourceGroupId | String | Tidak | Ya | ID grup sumber daya. | Tidak ada |
Sintaks ServerGroups
"ServerGroups": [
{
"Type": String,
"ServerGroupId": String,
"Weight": Number,
"Port": Number
}
] Properti ServerGroups
Nama properti | Tipe | Diperlukan | Dapat diperbarui | Deskripsi | Batasan |
Type | String | Ya | Tidak | Tipe grup server Server Load Balancer. | Nilai valid:
|
ServerGroupId | String | Ya | Tidak | ID grup server Server Load Balancer. | Tidak ada |
Weight | Number | Ya | Tidak | Bobot instance ECS atau ECI sebagai server backend. | Nilai valid: 0 hingga 100. Bobot yang lebih tinggi menunjukkan bahwa instance ECS atau ECI dialokasikan lebih banyak permintaan akses. Jika bobotnya 0, instance ECS atau ECI tidak menerima permintaan akses. |
Port | Number | Ya | Tidak | Nomor port yang digunakan oleh instance ECS atau ECI. | Nilai valid: 1 hingga 65535. |
Sintaks NotificationConfigurations
"NotificationConfigurations": [
{
"NotificationArn": String,
"NotificationTypes": List
}
] Properti NotificationConfigurations
Nama properti | Tipe | Diperlukan | Dapat diperbarui | Deskripsi | Batasan |
NotificationArn | String | Ya | Tidak | Pengidentifikasi penerima notifikasi untuk kait siklus hidup. Mendukung antrian atau topik Simple Message Queue (formerly MNS). | Nilai valid:
|
NotificationTypes | List | Ya | Tidak | Jenis notifikasi untuk peristiwa Penyesuaian Skala Otomatis dan perubahan sumber daya. | Tidak ada |
Sintaks Tags
"Tags": [
{
"Key": String,
"Value": String
}
] Properti Tags
Nama properti | Tipe | Diperlukan | Dapat diperbarui | Deskripsi | Batasan |
Key | String | Ya | Tidak | Kunci tag. | Kunci harus terdiri dari 1 hingga 128 karakter. Kunci tidak boleh dimulai dengan |
Value | String | Tidak | Tidak | Nilai tag. | Nilai dapat terdiri dari 0 hingga 128 karakter. Nilai tidak boleh dimulai dengan |
Sintaks LaunchTemplateOverrides
"LaunchTemplateOverrides": [
{
"InstanceType": String,
"WeightedCapacity": Integer,
"SpotPriceLimit": Number
}
] Properti LaunchTemplateOverrides
Nama properti | Tipe | Diperlukan | Dapat diperbarui | Deskripsi | Batasan |
InstanceType | String | Tidak | Ya | Jenis instance ECS. | Jika Anda ingin grup penskalaan melakukan penskalaan berdasarkan kapasitas tipe instans, tentukan parameter ini dan Parameter ini menentukan tipe instans dan mengganti tipe instans dalam templat peluncuran. Catatan Parameter ini hanya berlaku ketika templat peluncuran ditentukan oleh parameter LaunchTemplateId. |
WeightedCapacity | Integer | Tidak | Ya | Bobot jenis instance. | Jika Anda ingin grup penskalaan melakukan penskalaan berdasarkan kapasitas tipe instans, tentukan Parameter ini menentukan bobot tipe instans, yang merepresentasikan kapasitas satu instans tipe tersebut dalam grup penskalaan. Bobot yang lebih tinggi berarti lebih sedikit instans tipe tersebut yang diperlukan untuk memenuhi kapasitas yang diharapkan. Anda dapat mengatur bobot berbeda untuk tipe instans berbeda berdasarkan metrik performanya, seperti jumlah Contohnya:
Untuk memenuhi kapasitas yang diharapkan, grup penskalaan akan memperluas kapasitas dua instans Nilai valid: 1 hingga 500. Catatan Saat memperluas kapasitas, kapasitas grup penskalaan tidak boleh melebihi jumlah kapasitas maksimum (MaxSize) dan bobot maksimum tipe instans. |
SpotPriceLimit | Number | Tidak | Ya | Harga maksimum untuk instans spot. | Parameter ini menentukan harga maksimum untuk instans spot dari tipe instans yang ditentukan oleh Catatan Parameter ini hanya berlaku ketika templat peluncuran ditentukan oleh parameter |
Nilai kembalian
Fn::GetAtt
ScalingGroupId: ID grup penskalaan.
ScalingGroupName: Nama grup penskalaan.
Arn: Nama Sumber Daya Alibaba Cloud (ARN).
Contoh
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VSwitch:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
Label:
zh-cn: VSwitch ID
en: VSwitch ID
LaunchTemplateId:
AssociationProperty: ALIYUN::ECS::LaunchTemplate::LaunchTemplateId
Type: String
Resources:
ScalingGroup:
Type: ALIYUN::ESS::ScalingGroup
Properties:
VSwitchId:
Ref: VSwitch
LaunchTemplateId:
Ref: LaunchTemplateId
MaxSize: 3
ScalingGroupName: TestScalingGroup
MinSize: 0
Outputs:
ScalingGroupId:
Description: ID grup penskalaan.
Value:
Fn::GetAtt:
- ScalingGroup
- ScalingGroupId
ScalingGroupName:
Description: Nama grup penskalaan.
Value:
Fn::GetAtt:
- ScalingGroup
- ScalingGroupName{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"VSwitch": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"Type": "String",
"Label": {
"zh-cn": "VSwitch ID",
"en": "VSwitch ID"
}
},
"LaunchTemplateId":{
"AssociationProperty":"ALIYUN::ECS::LaunchTemplate::LaunchTemplateId",
"Type":"String"
}
},
"Resources": {
"ScalingGroup": {
"Type": "ALIYUN::ESS::ScalingGroup",
"Properties": {
"VSwitchId": {
"Ref": "VSwitch"
},
"LaunchTemplateId": {
"Ref": "LaunchTemplateId"
},
"MaxSize": 3,
"ScalingGroupName": "TestScalingGroup",
"MinSize": 0
}
}
},
"Outputs": {
"ScalingGroupId": {
"Description": "ID grup penskalaan.",
"Value": {
"Fn::GetAtt": [
"ScalingGroup",
"ScalingGroupId"
]
}
},
"ScalingGroupName": {
"Description": "Nama grup penskalaan.",
"Value": {
"Fn::GetAtt": [
"ScalingGroup",
"ScalingGroupName"
]
}
}
}
}Jika grup penskalaan hanya memiliki satu konfigurasi penskalaan yang bergantung pada sumber daya lain, tetapkan properti DependsOn untuk grup penskalaan dalam templat guna membuat dependensi terhadap sumber daya yang diperlukan oleh konfigurasi penskalaan tersebut.
ScalingGroup memiliki dependensi DependsOn terhadap SecurityGroup karena ScalingConfiguration bergantung pada sumber daya SecurityGroup.
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VpcId:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
VSwitchId:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
AssociationPropertyMetadata:
VpcId: ${VpcId}
Resources:
ScalingGroupEnable:
Type: ALIYUN::ESS::ScalingGroupEnable
Properties:
ScalingConfigurationId:
Ref: ScalingConfiguration
ScalingGroupId:
Ref: ScalingGroup
ScalingRuleArisExecuteVersion: 0
SecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupName:
Ref: ALIYUN::StackName
VpcId:
Ref: VpcId
SecurityGroupIngress:
- PortRange: '-1/-1'
Priority: 1
SourceCidrIp: 0.0.X.X/0
IpProtocol: all
NicType: internet
SecurityGroupEgress:
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.X.X/0
NicType: internet
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.X.X/0
NicType: intranet
ScalingConfiguration:
Type: ALIYUN::ESS::ScalingConfiguration
DependsOn: ScalingGroup
Properties:
InstanceType: ecs.g6e.large
ImageId: centos_7_04_64_20G_alibase_201701015.vhd
SystemDiskCategory: cloud_essd
SystemDiskSize: 100
ScalingConfigurationName:
Ref: ALIYUN::StackName
ScalingGroupId:
Ref: ScalingGroup
SecurityGroupId:
Ref: SecurityGroup
ScalingGroup:
Type: ALIYUN::ESS::ScalingGroup
DependsOn: SecurityGroup
Properties:
MaxSize: 3
MinSize: 0
DefaultCooldown: 15
VSwitchId:
Ref: VSwitchId
Outputs: {}