Membuat kebijakan penskalaan otomatis aplikasi.
Deskripsi operasi
Catatan penggunaan
-
Anda dapat membuat hingga lima kebijakan elastisitas per aplikasi.
-
Untuk setiap kebijakan elastisitas terjadwal, Anda dapat membuat hingga 20 titik pemicu per hari.
-
Saat kebijakan elastisitas diaktifkan, jangan melakukan operasi secara manual pada aplikasi, seperti penskalaan, deployment, perubahan spesifikasi, restart, atau penghentian. Untuk melakukan operasi ini, nonaktifkan kebijakan terlebih dahulu.
-
Anda tidak dapat menambahkan atau mengaktifkan kebijakan elastisitas untuk aplikasi yang sedang menjalani scale-out, scale-in, deployment (batch tunggal, bertahap, atau canary), perubahan spesifikasi, restart, atau penghentian.
-
Untuk melakukan scale out aplikasi ke lebih dari 50 instance, hubungi dukungan teknis SAE untuk ditambahkan ke whitelist. Untuk informasi selengkapnya, lihat Hubungi kami.
Coba sekarang
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
sae:CreateApplicationScalingRule |
create |
*全部资源
|
None | None |
Sintaks permintaan
POST /pop/v1/sam/scale/applicationScalingRule HTTP/1.1
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| AppId |
string |
Yes |
ID aplikasi. |
7171a6ca-d1cd-4928-8642-7d5cfe69**** |
| ScalingRuleName |
string |
Yes |
Nama kebijakan penskalaan otomatis. Nama harus unik dalam suatu aplikasi, diawali dengan huruf kecil, dan hanya boleh berisi huruf kecil, angka, dan tanda hubung (-). Nama dapat memiliki panjang hingga 32 karakter. Catatan
Nama kebijakan tidak dapat diubah setelah dibuat. |
timer-0800-2100 |
| ScalingRuleType |
string |
Yes |
Tipe kebijakan penskalaan otomatis. Nilai yang valid:
Catatan
|
timing |
| ScalingRuleTimer |
string |
No |
Konfigurasi untuk kebijakan penskalaan otomatis terjadwal. Parameter ini diperlukan jika Parameter ini adalah string JSON yang berisi kolom berikut:
|
{"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]} |
| ScalingRuleMetric |
string |
No |
Konfigurasi untuk kebijakan penskalaan otomatis berbasis metrik. Parameter ini diperlukan jika Parameter ini adalah string JSON yang berisi kolom berikut:
Catatan
Anda dapat mengonfigurasi satu atau beberapa metrik. Jika Anda mengonfigurasi beberapa metrik, aplikasi akan melakukan scale out ketika salah satu metrik memenuhi atau melebihi nilai targetnya, hingga jumlah maksimum instance yang ditentukan. Aplikasi hanya akan melakukan scale in ketika semua metrik berada di bawah nilai targetnya, hingga jumlah minimum instance yang ditentukan. |
{"maxReplicas":3,"minReplicas":1,"metrics":[{"metricType":"CPU","metricTargetAverageUtilization":20},{"metricType":"MEMORY","metricTargetAverageUtilization":30},{"metricType":"tcpActiveConn","metricTargetAverageUtilization":20},{"metricType":"SLB_QPS","MetricTargetAverageUtilization":25,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"},{"metricType":"SLB_RT","MetricTargetAverageUtilization":35,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"}],"scaleUpRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":0},"scaleDownRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":300}} |
| MinReadyInstances |
integer |
No |
Jumlah minimum instance siap. Nilai yang valid:
Catatan
Untuk memastikan kontinuitas layanan selama deployment bertahap, kami merekomendasikan untuk menetapkan jumlah minimum instance siap ke 1 atau lebih. |
3 |
| MinReadyInstanceRatio |
integer |
No |
Jumlah minimum instance siap, dinyatakan sebagai persentase dari jumlah total instance. Nilai yang valid:
Catatan
Jika Anda menentukan |
-1 |
| ScalingRuleEnable |
boolean |
No |
Menentukan apakah akan mengaktifkan kebijakan penskalaan otomatis. Nilai yang valid:
|
true |
| EnableIdle |
boolean |
No |
Menentukan apakah akan mengaktifkan mode idle untuk aplikasi. |
Elemen respons
|
Element |
Type |
Description |
Example |
|
object |
Objek respons. |
||
| RequestId |
string |
ID permintaan. |
91F93257-7A4A-4BD3-9A7E-2F6EAE6D**** |
| TraceId |
string |
ID jejak. Anda dapat menggunakan ID ini untuk menanyakan detail suatu permintaan. |
0a98a02315955564772843261e**** |
| Data |
object |
Data yang dikembalikan. |
|
| Timer |
object |
Konfigurasi untuk kebijakan penskalaan otomatis terjadwal. |
|
| EndDate |
string |
The end date of the short-term scheduled scaling policy.
|
2021-04-25 |
| BeginDate |
string |
The start date of the short-term scheduled scaling policy.
|
2021-03-25 |
| Schedules |
array<object> |
The time points when the policy is triggered in a day. |
|
|
object |
The data of a time point. |
||
| AtTime |
string |
The time point. Format: HH:mm. |
08:00 |
| TargetReplicas |
integer |
The target number of instances. |
3 |
| MaxReplicas |
integer |
The maximum number of instances. |
10 |
| MinReplicas |
integer |
The minimum number of instances. |
5 |
| Period |
string |
The period in which the scheduled scaling policy is executed. Valid values:
|
* * * |
| UpdateTime |
integer |
Waktu ketika kebijakan terakhir diperbarui, dalam milidetik. |
1616642248938 |
| AppId |
string |
ID aplikasi. |
7171a6ca-d1cd-4928-8642-7d5cfe69**** |
| CreateTime |
integer |
Waktu ketika kebijakan dibuat, dalam milidetik. |
1616642248938 |
| LastDisableTime |
integer |
Waktu ketika kebijakan penskalaan otomatis terakhir dinonaktifkan, dalam milidetik. |
1641882854484 |
| ScaleRuleEnabled |
boolean |
Menunjukkan apakah kebijakan penskalaan otomatis diaktifkan. Nilai yang valid:
|
true |
| ScaleRuleType |
string |
Tipe kebijakan penskalaan otomatis. Nilai yang valid:
|
timing |
| Metric |
object |
Konfigurasi untuk kebijakan penskalaan otomatis berbasis metrik. |
|
| Metrics |
array<object> |
The list of metric-based scaling policies. |
|
|
object |
The metric data. |
||
| MetricTargetAverageUtilization |
integer |
The target value of the metric.
|
20 |
| MetricType |
string |
The metric that is used to trigger the policy. Valid values:
|
CPU |
| SlbProject |
string |
The SLB access log project. |
test |
| SlbLogstore |
string |
The SLB access log Logstore. |
test |
| Vport |
string |
The SLB port. |
80 |
| SlbId |
string |
The SLB instance ID. |
lb-xxx |
| MaxReplicas |
integer |
The maximum number of instances. |
3 |
| MinReplicas |
integer |
The minimum number of instances. |
1 |
| ScaleRuleName |
string |
Nama kebijakan penskalaan otomatis. |
test |
| EnableIdle |
boolean |
Menunjukkan apakah mode idle diaktifkan. |
|
| Message |
string |
Pesan respons. Nilai yang valid:
|
success |
| ErrorCode |
string |
Kode kesalahan. Nilai yang valid:
|
|
| Code |
string |
Kode status HTTP. Nilai yang valid:
|
200 |
| Success |
boolean |
Menunjukkan apakah permintaan berhasil. Nilai yang valid:
|
true |
Contoh
Respons sukses
JSONformat
{
"RequestId": "91F93257-7A4A-4BD3-9A7E-2F6EAE6D****",
"TraceId": "0a98a02315955564772843261e****",
"Data": {
"Timer": {
"EndDate": "2021-04-25",
"BeginDate": "2021-03-25",
"Schedules": [
{
"AtTime": "08:00",
"TargetReplicas": 3,
"MaxReplicas": 10,
"MinReplicas": 5
}
],
"Period": "* * *"
},
"UpdateTime": 1616642248938,
"AppId": "7171a6ca-d1cd-4928-8642-7d5cfe69****",
"CreateTime": 1616642248938,
"LastDisableTime": 1641882854484,
"ScaleRuleEnabled": true,
"ScaleRuleType": "timing",
"Metric": {
"Metrics": [
{
"MetricTargetAverageUtilization": 20,
"MetricType": "CPU",
"SlbProject": "test",
"SlbLogstore": "test",
"Vport": "80",
"SlbId": "lb-xxx"
}
],
"MaxReplicas": 3,
"MinReplicas": 1
},
"ScaleRuleName": "test",
"EnableIdle": false
},
"Message": "success",
"ErrorCode": "",
"Code": "200",
"Success": true
}
Kode kesalahan
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | InstanceExist.ScalingRuleName | The specified ScalingRuleName already exists. | |
| 400 | InvalidScalingRuleDate.BeginAfterEnd | The specified beginning time is later than the ending time. | |
| 400 | InvalidScalingRuleDate.Format | The specified date is invalid. | |
| 400 | InvalidScalingRuleName.NotFound | The specified ScalingRuleName does not exist. | |
| 400 | InvalidScalingRuleTime.Conflict | The specified scaling rule time is invalid. Another schedule has been set for the specified time range. Please set a different time. | |
| 400 | InvalidScalingRuleTime.Format | The specified time is invalid. | |
| 400 | QuotaExceeded.ScalingRule | The maximum number of application scaling rules is exceeded. | |
| 400 | QuotaExceeded.ScalingRuleTime | The maximum number of scaling policy trigger time is exceeded. | |
| 400 | NoComputeResourceQuota.App.Exceed | You can create %s instances for each application. Please submit a ticket to raise the quota. | |
| 400 | NoComputeResourceQuota.Exceed | Your compute resource is insufficient. Please contact us to raise the quota. | |
| 400 | NoComputeResourceQuota.User.Exceed | Your account is limited to create %s instances. Please submit a ticket to raise the quota. | |
| 400 | System.Upgrading | The system is being upgraded. Please try again later. | |
| 400 | OperationDenied.SDKNotSupported | Metrics is not supported in SDK | |
| 400 | MinReadyInstances.Not.Smaller.Replicas | The minimum number of available instances must be less than the number of application instances. | |
| 400 | MinReadyInstanceRatio.Invalid | The ratio of minimum available instances must be between 0 and 100. |
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.