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.
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
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:
|
DefaultResult | String | No | CONTINUE | Aksi yang dilakukan Auto Scaling setelah kait siklus hidup mengalami timeout. Nilai yang valid:
Jika sebuah grup penskalaan memiliki beberapa kait siklus hidup yang aktif dan Anda menetapkan 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 Jika Anda menggunakan Sebagai contoh, jika templat CloudOps Orchestration Service (OOS) Anda berisi
|
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:
Variabel dalam format nilai di atas memiliki arti sebagai berikut:
|
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. |