Membuat aturan penskalaan. Tujuan aturan penskalaan bervariasi tergantung pada jenisnya—Anda dapat menggunakannya untuk memicu aktivitas penskalaan atau menyesuaikan nilai batas grup penskalaan. Panggil operasi CreateScalingRule untuk membuat berbagai jenis aturan penskalaan sesuai kebutuhan bisnis Anda. Misalnya, jika bisnis Anda hanya memerlukan penyesuaian otomatis nilai batas grup penskalaan, Anda dapat membuat aturan penskalaan prediktif melalui operasi ini.
Catatan penggunaan
Sebelum memanggil operasi CreateScalingRule, perhatikan hal-hal berikut:
Jika Anda mengatur AdjustmentType ke TotalCapacity, jumlah total instance Elastic Compute Service (ECS) atau instance kontainer elastis dalam grup penskalaan akan disesuaikan menjadi angka tertentu saat aturan penskalaan diterapkan. Pastikan AdjustmentValue diatur ke bilangan bulat yang lebih besar dari 0.
Jika Anda mengatur AdjustmentType ke QuantityChangeInCapacity atau PercentChangeInCapacity, nilai positif AdjustmentValue menunjukkan penambahan sejumlah instance ECS atau instance kontainer elastis ke grup penskalaan, sedangkan nilai negatif menunjukkan pengurangan instance tersebut.
Jika Anda mengatur AdjustmentType ke PercentChangeInCapacity, Auto Scaling menghitung jumlah instance ECS atau instance kontainer elastis yang akan ditambahkan atau dihapus menggunakan rumus berikut: Kapasitas saat ini grup penskalaan (Total Capacity) × AdjustmentValue / 100. Hasilnya dibulatkan untuk menentukan jumlah penyesuaian akhir.
Jika Anda menentukan periode cooldown (Cooldown) untuk aturan penskalaan, periode tersebut akan berlaku setelah aturan diterapkan. Jika tidak ditentukan, periode cooldown default (DefaultCooldown) grup penskalaan yang akan berlaku.
Anda hanya dapat membuat jumlah terbatas aturan penskalaan untuk satu grup penskalaan. Untuk informasi selengkapnya, lihat Batas.
Operasi API berikut mungkin menggunakan pengenal unik aturan penskalaan (ScalingRuleAri) yang dikembalikan oleh operasi CreateScalingRule:
ExecuteScalingRule: Anda dapat memanggil operasi ini untuk menjalankan aturan penskalaan secara manual. Saat memanggilnya, atur ScalingRuleAri ke pengenal unik aturan penskalaan yang ingin diterapkan.
CreateScheduledTask: Anda dapat memanggil operasi ini untuk membuat Tugas terjadwal untuk aturan penskalaan. Saat memanggilnya, atur ScalingRuleAri ke pengenal unik aturan penskalaan yang ingin dibuatkan Tugas terjadwalnya.
Debugging
Parameter permintaan
Parameter | Tipe | Wajib | Contoh | Deskripsi |
Action | String | Ya | CreateScalingRule | Operasi yang ingin Anda lakukan. Tetapkan nilainya ke CreateScalingRule. |
ScalingGroupId | String | Ya | asg-bp1ffogfdauy0jw0**** | ID grup penskalaan tempat Anda ingin membuat aturan penskalaan. |
ScalingRuleName | String | Tidak | scalingrule**** | Nama aturan penskalaan. Nama harus terdiri dari 2 hingga 64 karakter, dan dapat berisi huruf, angka, garis bawah (_), tanda hubung (-), serta titik (.). Nama harus dimulai dengan huruf atau angka. Nama setiap aturan penskalaan harus unik dalam satu Akun Alibaba Cloud di suatu Wilayah. Catatan Jika Anda tidak mengisi parameter ini, ID aturan penskalaan akan digunakan. |
Cooldown | Integer | Tidak | 60 | Periode cooldown aturan penskalaan. Parameter ini hanya tersedia jika Anda mengatur ScalingRuleType ke SimpleScalingRule. Nilai valid: 0 hingga 86400. Satuan: detik. Anda dapat mengosongkan parameter ini. |
MinAdjustmentMagnitude | Integer | Tidak | 1 | Batas bawah jumlah instance dalam setiap penyesuaian. Parameter ini hanya berlaku jika Anda mengatur |
AdjustmentType | String | Tidak | QuantityChangeInCapacity | Metode penyesuaian yang digunakan oleh aturan penskalaan. Jika Anda mengatur ScalingRuleType ke SimpleScalingRule atau StepScalingRule, Anda harus menentukan parameter ini. Nilai valid:
|
AdjustmentValue | Integer | Tidak | 100 | Jumlah instance yang dapat ditambahkan ke atau dihapus dari grup penskalaan berdasarkan aturan penskalaan. Jika Anda mengatur ScalingRuleType ke SimpleScalingRule atau StepScalingRule, Anda harus menentukan parameter ini. Jumlah maksimum instance ECS yang dapat ditambahkan atau dihapus dalam satu operasi penskalaan adalah 1.000, terlepas dari skenarionya. Rentang nilai parameter ini bervariasi tergantung pada nilai AdjustmentType.
|
ScalingRuleType | String | Tidak | SimpleScalingRule | Jenis aturan penskalaan. Nilai valid:
Nilai default: SimpleScalingRule. |
EstimatedInstanceWarmup | Integer | Tidak | 300 | Periode pemanasan instance yang dapat ditambahkan ke atau dihapus dari grup penskalaan. Anda hanya dapat menentukan parameter ini untuk aturan penskalaan sederhana dan aturan penskalaan langkah. Auto Scaling menambahkan instance ECS dalam status Warmup ke grup penskalaan tetapi tidak mengirimkan data pemantauan ke CloudMonitor selama periode pemanasan. Catatan Instance ECS dalam status Warmup tidak termasuk dalam perhitungan kapasitas saat Auto Scaling menentukan jumlah instance yang perlu diskalakan. Nilai valid: 0 hingga 86400. Satuan: detik. Nilai default: 300. |
MetricName | String | Tidak | CpuUtilization | Metrik yang telah ditentukan untuk aturan penskalaan. Jika Anda mengatur ScalingRuleType ke TargetTrackingScalingRule atau PredictiveScalingRule, Anda juga harus menentukan parameter ini. Nilai valid jika Anda mengatur ScalingRuleType ke TargetTrackingScalingRule:
Nilai valid jika Anda mengatur ScalingRuleType ke PredictiveScalingRule:
Untuk informasi selengkapnya, lihat Tugas berbasis peristiwa tipe pemantauan sistem. |
TargetValue | Float | Tidak | 0,125 | Nilai yang diharapkan. Jika Anda mengatur ScalingRuleType ke TargetTrackingScalingRule atau PredictiveScalingRule, Anda harus menentukan parameter ini. Nilainya harus lebih besar dari 0 dan dapat memiliki hingga tiga tempat desimal. |
DisableScaleIn | Boolean | Tidak | false | Menentukan apakah skala-masuk dinonaktifkan. Parameter ini tersedia jika Anda mengatur ScalingRuleType ke TargetTrackingScalingRule. Nilai default: false. |
ScaleInEvaluationCount | Integer | Tidak | 15 | Setelah Anda membuat aturan penskalaan pelacakan target, tugas berbasis peristiwa akan dibuat secara otomatis dan dikaitkan dengan aturan penskalaan tersebut. Parameter ini menentukan jumlah kali berturut-turut kondisi peringatan harus terpenuhi sebelum tugas berbasis peristiwa memulai operasi skala-masuk. Nilai default: 15. |
ScaleOutEvaluationCount | Integer | Tidak | 3 | Setelah Anda membuat aturan penskalaan pelacakan target, tugas berbasis peristiwa akan dibuat secara otomatis dan dikaitkan dengan aturan penskalaan tersebut. Parameter ini menentukan jumlah kali berturut-turut kondisi peringatan harus terpenuhi sebelum tugas berbasis peristiwa memulai operasi skala keluar. Nilai default: 3. |
PredictiveScalingMode | String | Tidak | PredictAndScale | Mode aturan penskalaan prediktif. Nilai valid:
Nilai default: PredictAndScale. |
PredictiveValueBehavior | String | Tidak | MaxOverridePredictiveValue | Aksi yang ingin Anda lakukan terhadap nilai maksimum prediksi. Nilai valid:
Nilai default: MaxOverridePredictiveValue. |
PredictiveValueBuffer | Integer | Tidak | 50 | Rasio peningkatan nilai prediksi jika Anda mengatur Nilai default: 0. |
PredictiveTaskBufferTime | Integer | Tidak | 30 | Jumlah waktu buffer sebelum tugas prediksi dijalankan. Secara default, semua tugas prediksi yang dibuat secara otomatis berdasarkan aturan penskalaan prediktif dijalankan tepat pada jam tertentu. Anda dapat menentukan waktu buffer untuk persiapan resource sebelum tugas prediksi dijalankan. Nilai valid: 0 hingga 60. Satuan: menit. Nilai default: 0. |
InitialMaxSize | Integer | Tidak | 100 | Jumlah maksimum instance yang dapat ditambahkan ke grup penskalaan. Jika Anda menentukan InitialMaxSize, Anda juga harus menentukan PredictiveValueBehavior. Nilai default parameter ini adalah nilai MaxSize. |
StepAdjustment.N.MetricIntervalUpperBound | Float | Tidak | 5,0 | Batas atas penyesuaian langkah. Parameter ini hanya berlaku jika Anda mengatur ScalingRuleType ke StepScalingRule. Nilai valid: -9,999999E18 hingga 9,999999E18. |
StepAdjustment.N.ScalingAdjustment | Integer | Tidak | 1 | Jumlah instance yang ingin Anda skalakan dalam setiap penyesuaian langkah. Parameter ini tersedia saat ScalingRuleType diatur ke StepScalingRule. |
StepAdjustment.N.MetricIntervalLowerBound | Float | Tidak | 1,0 | Batas bawah penyesuaian langkah. Parameter ini hanya berlaku jika Anda mengatur ScalingRuleType ke StepScalingRule. Nilai valid: -9,999999E18 hingga 9,999999E18. |
RegionId | String | Tidak | cn-hangzhou | ID Wilayah grup penskalaan. |
AlarmDimension.N.DimensionKey | String | Tidak | rulePool | Kunci dimensi metrik. |
AlarmDimension.N.DimensionValue | String | Tidak | sgp-l1cbirz451yxu2**** | Nilai dimensi metrik. |
MetricType | String | Tidak | system | Jenis metrik. Nilai valid:
|
HybridMonitorNamespace | String | Tidak | aliyun-test | ID namespace Pemantauan Cloud Hibrida. Untuk informasi tentang cara mengelola namespace Pemantauan Cloud Hibrida, lihat Mengelola namespace. |
HybridMetrics.N.Id | String | Tidak | a | ID referensi metrik dalam ekspresi metrik. |
HybridMetrics.N.Expression | String | Tidak | (a+b)/2 | Ekspresi metrik yang terdiri dari beberapa metrik Pemantauan Cloud Hibrida. Ekspresi ini menghitung hasil yang digunakan untuk memicu event penskalaan. Ekspresi harus ditulis dalam format Reverse Polish Notation (RPN) dan hanya mendukung operator berikut: |
HybridMetrics.N.MetricName | String | Tidak | AliyunSmq_NumberOfMessagesVisible | Nama metrik Pemantauan Cloud Hibrida. |
HybridMetrics.N.Statistic | String | Tidak | Average | Metode statistik nilai metrik. Nilai valid:
|
HybridMetrics.N.Dimensions.N.DimensionKey | String | Tidak | queue | Kunci dimensi metrik. |
HybridMetrics.N.Dimensions.N.DimensionValue | String | Tidak | testQueue | Nilai dimensi metrik. |
AlarmOptions.Period | Integer | Tidak | 60 | Periode statistik data metrik dalam aturan penskalaan pelacakan target. Satuan: detik. Nilai valid:
Catatan Nilai default: 60. |
Parameter respons
Parameter | Tipe | Contoh | Deskripsi |
ScalingRuleAri | String | ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7**** | Pengenal unik aturan penskalaan. |
RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | ID permintaan. |
ScalingRuleId | String | asr-bp1dvirgwkoowxk7**** | ID aturan penskalaan. ID ini dihasilkan oleh sistem dan bersifat unik secara global. |
Contoh
Contoh permintaan
http(s)://ess.aliyuncs.com/?Action=CreateScalingRule
&ScalingGroupId=asg-bp1ffogfdauy0jw0****
&ScalingRuleName=scalingrule****
&Cooldown=60
&MinAdjustmentMagnitude=1
&AdjustmentType=QuantityChangeInCapacity
&AdjustmentValue=100
&ScalingRuleType=SimpleScalingRule
&EstimatedInstanceWarmup=300
&MetricName=CpuUtilization
&TargetValue=0.125
&DisableScaleIn=false
&ScaleInEvaluationCount=15
&ScaleOutEvaluationCount=3
&PredictiveScalingMode=PredictAndScale
&PredictiveValueBehavior=MaxOverridePredictiveValue
&PredictiveValueBuffer=50
&PredictiveTaskBufferTime=30
&InitialMaxSize=100
&StepAdjustment=[{"MetricIntervalUpperBound":5.0,"ScalingAdjustment":1,"MetricIntervalLowerBound":1.0}]
&RegionId=cn-hangzhou
&AlarmDimension=[{"DimensionKey":"rulePool","DimensionValue":"sgp-l1cbirz451yxu2****"}]
&MetricType=system
&HybridMonitorNamespace=aliyun-test
&HybridMetrics=[{"Id":"a","MetricName":"AliyunSmq_NumberOfMessagesVisible","Statistic":"Average","Dimensions":[{"DimensionKey":"queue","DimensionValue":"testQueue"}]}]
&<Common request parameters>Contoh respons sukses
XML format
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateScalingRuleResponse>
<ScalingRuleAri>ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****</ScalingRuleAri>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
<ScalingRuleId>asr-bp1dvirgwkoowxk7****</ScalingRuleId>
</CreateScalingRuleResponse>JSON format
HTTP/1.1 200 OK
Content-Type:application/json
{
"ScalingRuleAri" : "ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****",
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"ScalingRuleId" : "asr-bp1dvirgwkoowxk7****"
}Kode kesalahan
Untuk daftar kode kesalahan, lihat Kode kesalahan layanan.
Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi |
404 | InvalidScalingGroupId.NotFound | The specified scaling group does not exist. | Grup penskalaan yang ditentukan tidak ada dalam Akun Alibaba Cloud Anda. |
400 | InvalidScalingRuleName.Duplicate | The specified value of parameter <parameter name> is duplicated. | Nama aturan penskalaan sudah ada. |
400 | QuotaExceeded.ScalingRule | Scaling rule quota exceeded in the specified scaling group. | Jumlah maksimum aturan penskalaan dalam grup penskalaan telah tercapai. |
400 | TargetTrackingScalingRule.UnsupportedMetric | Specific metric is not supported for target tracking scaling rule. | Aturan penskalaan pelacakan target tidak mendukung metrik yang ditentukan. |
400 | TargetTrackingScalingRule.DumplicateMetric | Only one TargetTrackingScaling rule for a given metric specification is allowed. | Metrik tersebut sudah ditentukan untuk aturan penskalaan pelacakan target lain dalam grup penskalaan. |
400 | InvalidMinAdjustmentMagnitudeMismatchAdjustmentType | MinAdjustmentMagnitude is not supported by the specified adjustment type. | MinAdjustmentMagnitude tidak mendukung metode penyesuaian aturan penskalaan. |
400 | InvalidStepAdjustments.MultipleNullUpperBound | At most one StepAdjustment may have an unspecified upper bound. | Penyesuaian langkah tanpa batas atas sudah ada. |
400 | InvalidStepAdjustments.MultipleNullLowerBound | At most one StepAdjustment may have an unspecified lower bound. | Penyesuaian langkah tanpa batas bawah sudah ada. |
400 | InvalidStepAdjustments.NoNullLowerBound | There must be a StepAdjustment with an unspecified lower bound when one StepAdjustment has a negative lower bound. | Penyesuaian langkah memiliki batas bawah negatif, tetapi tidak ada penyesuaian langkah tanpa batas bawah. |
400 | InvalidStepAdjustments.NoNullUpperBound | There must be a StepAdjustment with an unspecified upper bound when one StepAdjustment has a positive upper bound. | Penyesuaian langkah memiliki batas atas positif, tetapi tidak ada penyesuaian langkah tanpa batas atas. |
400 | InvalidStepAdjustments.Gap | StepAdjustment intervals can not have gaps between them. | Penyesuaian langkah memiliki celah. |
400 | InvalidStepAdjustments.Overlap | StepAdjustment intervals can not overlap. | Rentang penyesuaian langkah saling tumpang tindih. |
400 | InvalidStepAdjustments.LowerGtUpper | LowerBound must be less than the UpperBound for StepAdjustment :%s. | Batas bawah penyesuaian langkah lebih besar dari atau sama dengan batas atasnya. |
400 | InvalidStepAdjustments.BothNull | Both lower and upper bounds of a StepAdjustment can not be left unspecified. | Anda tidak dapat menentukan batas atas dan batas bawah untuk penyesuaian langkah secara bersamaan. |
400 | InvalidStepAdjustments.MaxNum | Your scaling rule can have at most %s StepAdjustments. | Jumlah maksimum penyesuaian langkah dalam grup penskalaan telah tercapai. |
400 | StepBeyondPermitRange | Specific parameter "%s" beyond permit range. | Batas atas atau batas bawah yang ditentukan untuk penyesuaian langkah tidak valid. |