All Products
Search
Document Center

Auto Scaling:CreateLifecycleHook

Last Updated:May 25, 2026

Membuat kait siklus hidup (lifecycle hook). Kait siklus hidup memungkinkan Anda menjalankan aksi kustom, seperti mengirim notifikasi atau mengeksekusi skrip secara otomatis pada tahap-tahap kritis—misalnya saat startup dan terminasi—dalam siklus hidup sebuah instans. Penerapan fitur ini memberikan kontrol dan manajemen instans yang lebih presisi. Sebagai contoh, Anda dapat memverifikasi konfigurasi, menyiapkan tugas kustom, atau melakukan pencadangan data pada instans saat kait siklus hidup diaktifkan, sehingga meningkatkan fleksibilitas dan keandalan penerapan aplikasi.

Catatan penggunaan

  • Anda dapat membuat hingga enam kait siklus hidup untuk setiap grup penskalaan. Selama peristiwa penskalaan, instans Elastic Compute Service (ECS) tidak langsung ditambahkan ke atau dihapus dari grup penskalaan yang memiliki kait siklus hidup aktif. Instans tersebut baru ditambahkan atau dihapus setelah kait siklus hidup mengalami timeout. Durasi aktivitas kait siklus hidup ditentukan oleh nilai HeartbeatTimeout. Sebelum timeout terjadi, Anda dapat menjalankan operasi kustom, seperti menginisialisasi konfigurasi instans ECS atau mengkueri data pada instans tersebut.

  • Selama peristiwa scale-out, alamat IP pribadi instans ECS ditambahkan ke daftar putih alamat IP instans ApsaraDB RDS terkait. Namun, instans ECS hanya ditambahkan ke kelompok server backend instans Server Load Balancer (SLB) terkait setelah kait siklus hidup mengalami timeout. Sebaliknya, selama peristiwa scale-in, instans ECS dihapus dari kelompok server backend instans SLB terkait, tetapi alamat IP pribadinya baru dihapus dari daftar putih alamat IP instans ApsaraDB RDS terkait setelah kait siklus hidup mengalami timeout.

  • Anda harus menentukan penerima notifikasi untuk setiap kait siklus hidup. Saat kait siklus hidup dipicu, notifikasi dapat dikirim melalui topik Simple Message Queue (SMQ, sebelumnya MNS), antrian SMQ, atau templat CloudOps Orchestration Service (OOS). Jika Anda ingin mengonfigurasi templat OOS, Anda harus membuat role Resource Access Management (RAM) untuk OOS. Untuk informasi selengkapnya, lihat Grant RAM permissions to OOS.

Catatan

Jika grup penskalaan Anda berisi instans ECS yang sudah ada, dan Anda telah menentukan templat OOS untuk menambahkan atau menghapus alamat IP pribadi mereka ke atau dari daftar putih alamat IP database cloud selain instans ApsaraDB RDS, Anda harus secara manual menambahkan atau menghapus alamat IP pribadi tersebut ke atau dari daftar putih.

Debugging

OpenAPI Explorer secara otomatis menghitung nilai signature. Untuk kenyamanan Anda, kami menyarankan agar Anda memanggil operasi ini di OpenAPI Explorer. OpenAPI Explorer secara dinamis menghasilkan contoh kode operasi ini untuk berbagai SDK.

Parameter permintaan

Parameter

Type

Required

Example

Description

Action

String

Yes

CreateLifecycleHook

Operasi yang ingin Anda lakukan. Tetapkan nilainya ke CreateLifecycleHook.

ScalingGroupId

String

Yes

asg-bp1eyv4qn8ssgv43****

ID grup penskalaan.

LifecycleHookName

String

No

lifecyclehook****

Nama kait siklus hidup yang ingin Anda buat. Setiap nama kait siklus hidup harus unik dalam satu grup penskalaan. Nama harus terdiri dari 2 hingga 64 karakter dan dapat berisi huruf, angka, garis bawah (_), tanda hubung (-), dan titik (.). Nama harus dimulai dengan huruf atau angka.

Jika Anda tidak menentukan parameter ini, nilai LifecycleHookId akan digunakan.

LifecycleTransition

String

Yes

SCALE_OUT

Jenis peristiwa penskalaan tempat Anda menerapkan kait siklus hidup. Nilai yang valid:

  • SCALE_OUT: peristiwa scale-out.

  • SCALE_IN: peristiwa scale-in.

DefaultResult

String

No

CONTINUE

Aksi yang dilakukan Auto Scaling setelah kait siklus hidup mengalami timeout. Nilai yang valid:

  • CONTINUE: Auto Scaling melanjutkan respons terhadap permintaan penskalaan.

  • ABANDON: Auto Scaling melepas instans ECS yang dibuat selama peristiwa scale-out, atau menghapus instans ECS dari grup penskalaan selama peristiwa scale-in.

  • ROLLBACK: Selama peristiwa scale-in, Auto Scaling tidak melepas instans ECS, tetapi melakukan rollback pada instans ECS tersebut. Selama peristiwa scale-out, pengaturan ROLLBACK berfungsi sama seperti pengaturan ABANDON.

Jika sebuah grup penskalaan memiliki beberapa kait siklus hidup yang aktif dan Anda menetapkan DefaultResult salah satu kait siklus hidup ke ABANDON atau ROLLBACK, aturan berikut berlaku untuk peristiwa scale-in: Ketika kait siklus hidup yang DefaultResult-nya diatur ke ABANDON atau ROLLBACK mengalami timeout, kait siklus hidup lainnya juga mengalami timeout lebih awal. Dalam kasus lain, Auto Scaling hanya melakukan aksi setelah semua kait siklus hidup mengalami timeout. Aksi yang dilakukan Auto Scaling ditentukan oleh nilai DefaultResult yang Anda tentukan untuk kait siklus hidup yang paling akhir mengalami timeout.

Nilai default: CONTINUE.

HeartbeatTimeout

Integer

No

600

Durasi waktu sebelum kait siklus hidup mengalami timeout. Setelah kait siklus hidup mengalami timeout, Auto Scaling melakukan aksi default. Nilai yang valid: 30 hingga 21600. Satuan: detik.

Setelah membuat kait siklus hidup, Anda dapat memanggil operasi RecordLifecycleActionHeartbeat untuk memperpanjang periode timeout kait siklus hidup. Anda juga dapat memanggil operasi CompleteLifecycleAction untuk mengakhiri periode timeout lebih awal.

Nilai default: 600.

NotificationMetadata

String

No

Test lifecycle hook.

Informasi notifikasi yang dikirim Auto Scaling ke penerima yang ditentukan oleh NotificationArn saat kait siklus hidup diaktifkan. Parameter ini membantu Anda mengelola dan memberi label notifikasi dari berbagai jenis. Jika Anda menentukan parameter ini, Anda harus menentukan NotificationArn. Panjang nilai parameter ini tidak boleh melebihi 4.096 karakter.

Jika Anda menggunakan NotificationArn untuk menentukan templat OOS publik atau kustom, nilai NotificationMetadata harus berupa string JSON yang berisi parameter templat OOS.

Sebagai contoh, jika templat CloudOps Orchestration Service (OOS) Anda berisi {"dbInstanceId": "dds-bp17661e0135****", "modifyMode": "Append"}, dbInstanceId, dan modifyMode, nilai NotificationMetadata harus berupa string JSON yang berisi parameter tersebut. Saat menentukan NotificationMetadata dalam templat OOS Anda, pastikan hanya menentukan parameter yang tidak memiliki nilai default. Jika Anda menentukan parameter yang sudah memiliki nilai default, nilai default tersebut akan ditimpa. Anda harus mempertahankan nilai default parameter berikut untuk mendapatkan informasi tentang peristiwa penskalaan yang sedang berlangsung.

  • regionId: ID wilayah dari peristiwa penskalaan yang sedang berlangsung. Nilai default: ${regionId}.

  • instanceIds: ID instans ECS yang diskalakan selama peristiwa penskalaan. Nilai default: ${instanceIds}.

  • lifecycleHookId: ID kait siklus hidup. Nilai default: ${lifecycleHookId}.

  • lifecycleActionToken: token kait siklus hidup. Anda dapat menggunakan token ini untuk mengakhiri periode timeout kait siklus hidup lebih awal. Nilai default: ${lifecycleActionToken}

  • scalingGroupId: ID grup penskalaan tempat peristiwa penskalaan terjadi. Nilai default: ${scalingGroupId}.

  • lifecycleActionResult: aksi yang dilakukan Auto Scaling setelah kait siklus hidup mengalami waktu habis. Jika templat OOS gagal dieksekusi, kait siklus hidup akan mengalami waktu habis lebih awal. Jika Anda mengatur DefaultResult ke ROLLBACK, nilai default parameter ini adalah ROLLBACK. Jika Anda mengatur DefaultResult ke nilai lain, nilai default parameter ini adalah ABANDON.

    Catatan

    • Anda dapat menentukan nilai untuk lifecycleActionResult untuk menimpa nilai default. Nilai yang valid: ABANDON, CONTINUE, ROLLBACK, dan ${lifecycleActionResult}. Nilai ${lifecycleActionResult} menunjukkan bahwa nilai lifecycleActionResult sama dengan nilai DefaultResult.

    • Anda dapat melihat detail templat OOS yang Anda tentukan di Konsol OOS.

NotificationArn

String

No

acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo****

Nama Sumber Daya Alibaba Cloud (ARN) dari penerima notifikasi. Jika Anda tidak menentukan parameter ini, tidak ada notifikasi yang dikirim saat kait siklus hidup diaktifkan. Jika Anda menentukan parameter ini, aturan berikut berlaku:

  • Jika Anda menentukan antrian SMQ sebagai penerima notifikasi, gunakan format acs:mns:{region-id}:{account-id}:queue/{queuename}.

  • Jika Anda menentukan topik SMQ sebagai penerima notifikasi, gunakan format acs:mns:{region-id}:{account-id}:topic/{topicname}.

  • Jika Anda menentukan templat OOS sebagai penerima notifikasi, gunakan format acs:oos:{region-id}:{account-id}:template/{templatename}.

  • Jika Anda menentukan event bus yang disediakan oleh EventBridge sebagai penerima notifikasi, gunakan format acs:eventbridge:{region-id}:{account-id}:eventbus/default.

Variabel dalam format nilai di atas memiliki arti sebagai berikut:

  • region-id: ID wilayah grup penskalaan.

  • account-id: ID Akun Alibaba Cloud. ID Pengguna RAM tidak didukung.

  • queuename: nama antrian SMQ.

  • topicname: nama topik SMQ.

  • templatename: nama templat OOS.

Parameter respons

Parameter

Type

Example

Description

RequestId

String

473469C7-AA6F-4DC5-B3DB-A3DC0DE3****

ID permintaan.

LifecycleHookId

String

ash-bp1at9ufhmcf9cmy****

ID kait siklus hidup.

Contoh

Contoh permintaan

http(s)://ess.aliyuncs.com/?Action=CreateLifecycleHook
&ScalingGroupId=asg-bp1eyv4qn8ssgv43****
&LifecycleHookName=lifecyclehook****
&LifecycleTransition=SCALE_OUT
&DefaultResult=CONTINUE
&HeartbeatTimeout=600
&NotificationMetadata=Test lifecycle hook.
&NotificationArn=acs:mns:cn-beijing:161456884340****:queue/modifyLifecycleHo****
&<Common request parameters>

Contoh respons sukses

XML format

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateLifecycleHookResponse>
    <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
    <LifecycleHookId>ash-bp1at9ufhmcf9cmy****</LifecycleHookId>
</CreateLifecycleHookResponse>

JSON format

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
  "LifecycleHookId" : "ash-bp1at9ufhmcf9cmy****"
}

Kode kesalahan

Untuk daftar kode kesalahan, lihat Service error codes.

Kode status HTTP

Kode kesalahan

Deskripsi

Deskripsi

400

InvalidParamter

The specified value of parameter is not valid.

Nilai parameter tidak valid.

400

InvalidNotificationArn

The specified parameter notificationArn is invalid.

Nilai NotificationArn tidak valid.

400

UnsupportedNotificationType.CurrentRegion

The notificationType is not supported in the special region which scalingGroup belongs to.

Penerima notifikasi tidak didukung di wilayah saat ini.

400

QueueNotExist

The specified queue does not exist.

Antrian SMQ yang ditentukan tidak ada.

400

TopicNotExist

The specified topic does not exist.

Topik MNS tidak ada.

400

InvalidLifecycleHookName.Duplicate

The specified value of parameter lifecycleHookName is duplicated.

Nama kait siklus hidup sudah ada.

400

QuotaExceeded.LifecycleHook

Lifecycle hook quota exceeded in the specified scaling group.

Batas maksimum jumlah kait siklus hidup yang dapat Anda buat telah tercapai.