ALIYUN::ESS::LifecycleHook digunakan untuk membuat lifecycle hook pada sebuah scaling group.
Sintaksis
{
"Type": "ALIYUN::ESS::LifecycleHook",
"Properties": {
"LifecycleHookName": String,
"NotificationArn": String,
"HeartbeatTimeout": Integer,
"NotificationMetadata": String,
"ScalingGroupId": String,
"DefaultResult": String,
"LifecycleTransition": String
}
}
Properti
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Batasan |
LifecycleHookName | String | Tidak | Ya | Nama dari lifecycle hook. Nama harus unik di dalam sebuah scaling group. | Nama harus memiliki panjang 2 hingga 40 karakter, dan dapat berisi huruf, angka, garis bawah (_), tanda hubung (-), dan titik (.). Harus dimulai dengan huruf atau angka. Nilai default adalah ID dari lifecycle hook. |
NotificationArn | String | Tidak | Ya | Alibaba Cloud Resource Name (ARN) dari metode notifikasi. | Metode notifikasi yang didukung adalah sebagai berikut: CloudOps Orchestration Service (OOS) templates, Message Service (MNS) queues, dan MNS topics. Tentukan nilai properti dalam format acs:ess:{region}:{account-id}:{resource-relative-id}. Format nilai: Format nilai untuk antrian MNS: acs:ess:{region}:{account-id}:queue/{queuename} Format nilai untuk topik MNS: acs:ess:{region}:{account-id}:topic/{topicname} Format nilai untuk template OOS: acs:ess:{region}:{account-id}:oos/{template_name}
|
HeartbeatTimeout | Integer | Tidak | Ya | Periode timeout dari lifecycle hook. Selama periode timeout, aktivitas dalam scaling group berada dalam keadaan tertunda. Ketika periode timeout berakhir, Auto Scaling melakukan tindakan yang ditentukan oleh DefaultResult. Setelah Anda membuat lifecycle hook, Anda dapat memanggil operasi RecordLifecycleActionHeartbeat untuk memperpanjang periode timeout selama instance Elastic Compute Service (ECS) berada dalam keadaan tertunda. Anda juga dapat memanggil operasi CompleteLifecycleAction untuk mengakhiri keadaan tertunda dari aktivitas scaling lebih awal. | Nilai valid: 30 hingga 21600. Satuan: detik. Nilai default: 600. |
NotificationMetadata | String | Tidak | Ya | String tetap dalam notifikasi yang dikirimkan oleh Auto Scaling ketika aktivitas scaling berada dalam keadaan tertunda. | String dapat memiliki panjang hingga 128 karakter. Auto Scaling mengirimkan nilai NotificationMetadata yang ditentukan bersama dengan pesan notifikasi sehingga Anda dapat dengan mudah mengategorikan notifikasi. Properti ini hanya berlaku ketika NotificationArn ditentukan. |
ScalingGroupId | String | Ya | Tidak | ID dari scaling group. | Tidak ada. |
DefaultResult | String | Tidak | Ya | Tindakan yang dilakukan oleh Auto Scaling untuk scaling group ketika lifecycle hook timeout. Jika beberapa lifecycle hooks dipicu selama aktivitas scale-in dari scaling group dan lifecycle hook yang dikonfigurasi dengan DefaultResult=ABANDON timeout, maka lifecycle hooks lainnya dalam scaling group yang sama juga akan timeout. Dalam kasus lain, Auto Scaling hanya melakukan tindakan setelah semua lifecycle hooks timeout. Tindakan tersebut bervariasi berdasarkan nilai DefaultResult yang Anda tentukan untuk lifecycle hook yang timeout pada titik waktu terbaru. | Nilai valid: CONTINUE (default): Auto Scaling merespons aktivitas scale-in atau scale-out. ABANDON: Auto Scaling melepaskan instance ECS yang dibuat selama scale-out, atau menghapus instance ECS dari scaling group selama scale-in.
|
LifecycleTransition | String | Ya | Ya | Tipe aktivitas scaling yang ingin Anda terapkan lifecycle hook. | Nilai valid: |
Contoh
YAML Format
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ScalingGroupId:
Type: String
AssociationProperty: ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId
Resources:
LifecycleHook:
Type: ALIYUN::ESS::LifecycleHook
Properties:
LifecycleHookName: Demo997
NotificationArn:
Fn::Join:
- ''
- - 'acs:ess:'
- Ref: ALIYUN::Region
- ':'
- Ref: ALIYUN::TenantId
- ':'
- oos/ACS-ESS-LifeCycleRunCommand
ScalingGroupId:
Ref: ScalingGroupId
LifecycleTransition: SCALE_OUT
HeartbeatTimeout: 30
NotificationMetadata:
Fn::Join:
- ''
- - |-
{
"commandContent": "python /home/test.py",
"commandType": "RunShellScript"
Outputs:
LifecycleHookId:
Description: The lifecycle hook ID
Value:
Fn::GetAtt:
- LifecycleHook
- LifecycleHookId
JSON Format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"ScalingGroupId": {
"Type": "String",
"AssociationProperty": "ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId"
}
},
"Resources": {
"LifecycleHook": {
"Type": "ALIYUN::ESS::LifecycleHook",
"Properties": {
"LifecycleHookName": "Demo997",
"NotificationArn": {
"Fn::Join": [
"",
[
"acs:ess:",
{
"Ref": "ALIYUN::Region"
},
":",
{
"Ref": "ALIYUN::TenantId"
},
":",
"oos/ACS-ESS-LifeCycleRunCommand"
]
]
},
"ScalingGroupId": {
"Ref": "ScalingGroupId"
},
"LifecycleTransition": "SCALE_OUT",
"HeartbeatTimeout": 30,
"NotificationMetadata": {
"Fn::Join": [
"",
[
"{\n \"commandContent\": \"python /home/test.py\",\n \"commandType\": \"RunShellScript\""
]
]
}
}
}
},
"Outputs": {
"LifecycleHookId": {
"Description": "The lifecycle hook ID",
"Value": {
"Fn::GetAtt": [
"LifecycleHook",
"LifecycleHookId"
]
}
}
}
}