All Products
Search
Document Center

Serverless App Engine:CreateApplicationScalingRule

Last Updated:Jun 11, 2026

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

Coba API ini di OpenAPI Explorer tanpa perlu penandatanganan manual. Panggilan yang berhasil akan secara otomatis menghasilkan contoh kode SDK sesuai dengan parameter Anda. Unduh kode tersebut dengan kredensial bawaan yang aman untuk penggunaan lokal.

Test

RAM authorization

Tabel berikut menjelaskan otorisasi yang diperlukan untuk memanggil API ini. Anda dapat menentukannya dalam kebijakan Resource Access Management (RAM). Kolom pada tabel dijelaskan sebagai berikut:

  • Action: Aksi yang dapat digunakan dalam elemen Action pada pernyataan kebijakan izin RAM untuk memberikan izin guna melakukan operasi tersebut.

  • API: API yang dapat Anda panggil untuk melakukan aksi tersebut.

  • Access level: Tingkat akses yang telah ditentukan untuk setiap API. Nilai yang valid: create, list, get, update, dan delete.

  • Resource type: Jenis resource yang mendukung otorisasi untuk melakukan aksi tersebut. Ini menunjukkan apakah aksi tersebut mendukung izin tingkat resource. Resource yang ditentukan harus kompatibel dengan aksi tersebut. Jika tidak, kebijakan tersebut tidak akan berlaku.

    • Untuk API dengan izin tingkat resource, jenis resource yang diperlukan ditandai dengan tanda bintang (*). Tentukan Nama Sumber Daya Alibaba Cloud (ARN) yang sesuai dalam elemen Resource pada kebijakan.

    • Untuk API tanpa izin tingkat resource, ditampilkan sebagai All Resources. Gunakan tanda bintang (*) dalam elemen Resource pada kebijakan.

  • Condition key: Kunci kondisi yang didefinisikan oleh layanan. Kunci ini memungkinkan kontrol granular, berlaku baik hanya untuk aksi maupun untuk aksi yang terkait dengan resource tertentu. Selain kunci kondisi spesifik layanan, Alibaba Cloud menyediakan serangkaian common condition keys yang berlaku di semua layanan yang didukung RAM.

  • Dependent action: Aksi dependen yang diperlukan untuk menjalankan aksi tersebut. Untuk menyelesaikan aksi tersebut, pengguna RAM atau role RAM harus memiliki izin untuk melakukan semua aksi dependen.

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:

  • timing: penskalaan otomatis terjadwal.

  • metric: penskalaan otomatis berbasis metrik.

  • mix: penskalaan otomatis campuran.

Catatan
  • Jika Anda menetapkan parameter ini ke timing, parameter ScalingRuleTimer diperlukan.

  • Jika Anda menetapkan parameter ini ke metric, parameter ScalingRuleMetric diperlukan.

  • Jika Anda menetapkan parameter ini ke mix, parameter ScalingRuleMetric diperlukan. Anda juga dapat mengonfigurasi parameter ScalingRuleTimer sesuai kebutuhan.

timing

ScalingRuleTimer

string

No

Konfigurasi untuk kebijakan penskalaan otomatis terjadwal. Parameter ini diperlukan jika ScalingRuleType ditetapkan ke timing atau jika Anda menggunakan SDK.

Parameter ini adalah string JSON yang berisi kolom berikut:

  • beginDate dan endDate: Tanggal mulai dan tanggal akhir periode efektif kebijakan.

    • Jika kedua kolom ditetapkan ke null (default), kebijakan akan efektif tanpa batas waktu.

    • Jika Anda menetapkan rentang tanggal, misalnya, beginDate adalah 2021-03-25 dan endDate adalah 2021-04-25, kebijakan akan efektif selama satu bulan.

  • period: Aturan perulangan untuk kebijakan penskalaan otomatis terjadwal.

    • * * *: Kebijakan dijalankan pada waktu tertentu setiap hari.

    • * * Fri,Mon: Kebijakan dijalankan pada waktu tertentu pada hari-hari tertentu dalam seminggu. Anda dapat memilih beberapa hari. Waktu menggunakan zona waktu GMT+8. Nilai yang valid:

      • Sun: Minggu

      • Mon: Senin

      • Tue: Selasa

      • Wed: Rabu

      • Thu: Kamis

      • Fri: Jumat

      • Sat: Sabtu

    • 1,2,3,28,31 * *: Kebijakan dijalankan pada waktu tertentu pada hari-hari tertentu dalam satu bulan. Anda dapat memilih beberapa hari. Nilainya dapat berkisar dari 1 hingga 31. Jika sebuah bulan tidak memiliki hari yang ditentukan, misalnya tanggal 31, kebijakan tidak akan dijalankan pada hari tersebut untuk bulan itu.

  • schedules: Waktu pemicu dan jumlah target instance yang sesuai. Anda dapat menentukan maksimum 20 jadwal. Parameter ini mencakup kolom berikut:

    • atTime: Waktu pemicu dalam format HH:mm. Misalnya, 08:00.

    • targetReplicas: Jumlah target instance aplikasi. Nilai yang valid: 1 hingga 50.

      Catatan

      Selama deployment bertahap, kami merekomendasikan agar Anda menetapkan jumlah minimum instance siap ke 1 atau lebih untuk mencegah gangguan layanan. Jika Anda menetapkan jumlah minimum instance siap ke 0, aplikasi Anda akan terganggu selama pembaruan.

{"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 ScalingRuleType ditetapkan ke metric atau mix.

Parameter ini adalah string JSON yang berisi kolom berikut:

  • maxReplicas: Jumlah maksimum instance aplikasi.

  • minReplicas: Jumlah minimum instance aplikasi.

  • metricType: Metrik yang memicu kebijakan penskalaan otomatis. Nilai yang valid:

    • CPU: Pemanfaatan CPU.

    • MEMORY: Pemanfaatan memori.

    • QPS: Rata-rata queries per second (QPS) per instance untuk aplikasi Java selama periode 1 menit.

    • RT: Rata-rata response time (RT) dari semua antarmuka layanan untuk aplikasi Java selama periode 1 menit.

    • tcpActiveConn: Rata-rata jumlah koneksi TCP aktif per instance selama periode 30 detik.

    • SLB_QPS: Rata-rata QPS per instance untuk instance SLB publik selama periode 15 detik.

    • SLB_RT: Rata-rata RT instance SLB publik selama periode 15 detik.

    • INTRANET_SLB_QPS: Rata-rata QPS per instance untuk instance SLB internal selama periode 15 detik.

    • INTRANET_SLB_RT: Rata-rata RT instance SLB internal selama periode 15 detik.

  • metricTargetAverageUtilization: Nilai target untuk metrik yang ditentukan oleh metricType. Satuan nilai ini bergantung pada metricType.

    • Pemanfaatan CPU target, dalam persentase.

    • Pemanfaatan memori target, dalam persentase.

    • QPS target, dalam permintaan per detik.

    • Response time target, dalam milidetik.

    • Rata-rata jumlah koneksi TCP aktif.

    • QPS SLB publik target, dalam permintaan per detik.

    • Response time SLB publik target, dalam milidetik.

    • QPS SLB internal target, dalam permintaan per detik.

    • Response time SLB internal target, dalam milidetik.

  • slbId: ID instance SLB.

  • slbProject: Project Log Service.

  • slbLogstore: Logstore Log Service.

  • vport: Port listener SLB. Protokol HTTP dan HTTPS didukung.

  • scaleUpRules: Aturan untuk melakukan scale out pada aplikasi.

  • scaleDownRules: Aturan untuk melakukan scale in pada aplikasi.

  • step: Ukuran langkah untuk scale out atau scale in. Ini adalah jumlah maksimum instance yang dapat ditambahkan atau dihapus dalam satu aktivitas penskalaan.

  • disabled: Menentukan apakah akan mencegah aplikasi melakukan scale in. Jika ditetapkan ke true, jumlah instance aplikasi tidak akan pernah dikurangi. Hal ini dapat mencegah risiko bisnis yang disebabkan oleh scale in selama jam sibuk.

    • true: Scale-in dinonaktifkan.

    • false: Scale-in diaktifkan. Ini adalah nilai default.

  • stabilizationWindowSeconds: Periode cooldown untuk scale out atau scale in, dalam detik. Nilai yang valid: 0 hingga 3600. Nilai default adalah 0.

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:

  • Jika Anda menetapkan parameter ini ke 0, aplikasi akan terganggu selama pembaruan.

  • Jika Anda menetapkan parameter ini ke -1, sistem akan menetapkan nilai ke 25% dari jumlah instance saat ini, dibulatkan ke atas. Misalnya, jika aplikasi memiliki 5 instance, jumlah minimum instance siap adalah 2 (5 × 25% = 1,25, dibulatkan ke atas menjadi 2).

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:

  • -1: Menunjukkan bahwa persentase tidak digunakan. Dalam hal ini, nilai MinReadyInstances akan digunakan.

  • 0~100: Persentase. Hasilnya dibulatkan ke atas. Misalnya, jika Anda menetapkan parameter ini ke 50 (%) dan aplikasi memiliki 5 instance, jumlah minimum instance siap adalah 3.

Catatan

Jika Anda menentukan MinReadyInstances dan MinReadyInstanceRatio selain -1, MinReadyInstanceRatio akan diprioritaskan. Misalnya, jika MinReadyInstances ditetapkan ke 5 dan MinReadyInstanceRatio ditetapkan ke 50, sistem akan menggunakan 50 (%) untuk menghitung jumlah minimum instance siap.

-1

ScalingRuleEnable

boolean

No

Menentukan apakah akan mengaktifkan kebijakan penskalaan otomatis. Nilai yang valid:

  • true: Diaktifkan.

  • false: Dinonaktifkan.

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.

  • If you leave both BeginDate and EndDate empty, the policy is a long-term policy. This is the default value.

  • If you specify dates for the parameters, such as 2021-03-25 for BeginDate and 2021-04-25 for EndDate, the policy is a short-term policy and is effective for one month.

2021-04-25

BeginDate

string

The start date of the short-term scheduled scaling policy.

  • If you leave both BeginDate and EndDate empty, the policy is a long-term policy. This is the default value.

  • If you specify dates for the parameters, such as 2021-03-25 for BeginDate and 2021-04-25 for EndDate, the policy is a short-term policy and is effective for one month.

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:

  • * * *: The scheduled policy is executed at a specified time point every day.

  • * * Fri,Mon: The scheduled policy is executed at a specified time point on one or more specified days of the week. The days are in the GMT+8 time zone. Valid values:

    • Sun: Sunday

    • Mon: Monday

    • Tue: Tuesday

    • Wed: Wednesday

    • Thu: Thursday

    • Fri: Friday

    • Sat: Saturday

  • 1,2,3,28,31 * *: The scheduled policy is executed at a specified time point on one or more specified days of the month. You can specify multiple days. The value ranges from 1 to 31. If a month does not have the 31st day, the policy is not executed on that day.

* * *

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: Kebijakan diaktifkan.

  • false: Kebijakan dinonaktifkan.

true

ScaleRuleType

string

Tipe kebijakan penskalaan otomatis. Nilai yang valid:

  • timing: penskalaan otomatis terjadwal.

  • metric: penskalaan otomatis berbasis metrik.

  • mix: penskalaan otomatis campuran.

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.

  • The target CPU utilization. Unit: percentage.

  • The target memory usage. Unit: percentage.

  • The target QPS. Unit: requests per second.

  • The target RT. Unit: milliseconds.

  • The average number of active TCP connections. Unit: connections per second.

  • The QPS of an Internet-facing SLB instance. Unit: requests per second.

  • The RT of an Internet-facing SLB instance. Unit: milliseconds.

  • The QPS of an internal-facing SLB instance. Unit: requests per second.

  • The RT of an internal-facing SLB instance. Unit: milliseconds.

20

MetricType

string

The metric that is used to trigger the policy. Valid values:

  • CPU: the CPU utilization.

  • MEMORY: the memory usage.

  • QPS: the average QPS of a single instance of a Java application within 1 minute.

  • RT: the average RT of all service interfaces of a Java application within 1 minute.

  • tcpActiveConn: the average number of active TCP connections of a single instance within 30 seconds.

  • SLB_QPS: the average QPS of a single instance for an Internet-facing SLB instance within 15 seconds.

  • SLB_RT: the average RT of an Internet-facing SLB instance within 15 seconds.

  • INTRANET_SLB_QPS: the average QPS of a single instance for an internal-facing SLB instance within 15 seconds.

  • INTRANET_SLB_RT: the average RT of an internal-facing SLB instance within 15 seconds.

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:

  • Mengembalikan success jika permintaan berhasil.

  • Mengembalikan pesan kesalahan jika permintaan gagal.

success

ErrorCode

string

Kode kesalahan. Nilai yang valid:

  • Parameter ini tidak dikembalikan jika permintaan berhasil.

  • Kode kesalahan dikembalikan jika permintaan gagal. Untuk informasi selengkapnya, lihat bagian Kode kesalahan dalam topik ini.

Code

string

Kode status HTTP. Nilai yang valid:

  • 2xx: Permintaan berhasil.

  • 3xx: Permintaan dialihkan.

  • 4xx: Terjadi kesalahan klien.

  • 5xx: Terjadi kesalahan server.

200

Success

boolean

Menunjukkan apakah permintaan berhasil. Nilai yang valid:

  • true: Pemanggilan API berhasil.

  • false: Pemanggilan API gagal.

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.