文法
{
"Type": "ALIYUN::ESS::LifecycleHook",
"Properties": {
"LifecycleHookName": String,
"NotificationArn": String,
"HeartbeatTimeout": Integer,
"NotificationMetadata": String,
"ScalingGroupId": String,
"DefaultResult": String,
"LifecycleTransition": String
}
}
屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
LifecycleHookName | String | 否 | 是 | 生命週期掛鈎名稱,不能與當前伸縮組其他生命週期掛鈎重名。 | 長度為2~40個字元,以數字、英文字母或漢字開頭,可包含數字、英文字母、漢字、底線(_)、短劃線(-)和英文句點(.)。 預設值:生命週期掛鈎 ID。 |
NotificationArn | String | 否 | 是 | 生命週期掛鈎通知物件識別碼。 | 目前支援OOS模板、Message ServiceMNS隊列或主題,參數取值格式:acs:ess:{region}:{account-id}:{resource-relative-id} 。 region :伸縮組所在的地區。
account-id :阿里雲帳號ID。
例如: MNS隊列:acs:ess:{region}:{account-id}:queue/{queuename} 。 MNS主題:acs:ess:{region}:{account-id}:topic/{topicname} 。 OOS模板:acs:ess:{region}:{account-id}:oos/{template_name}
|
HeartbeatTimeout | Integer | 否 | 是 | 生命週期掛鈎為伸縮組活動設定的等待時間,等待狀態逾時後會執行下一步動作。建立了生命週期掛鈎後,您可以調用RecordLifecycleActionHeartbeat介面延長ECS執行個體的等待時間,也可以調用CompleteLifecycleAction介面提前結束伸縮活動的等待狀態。 | 取值範圍:30~21600。 單位:秒。 預設值:600。 |
NotificationMetadata | String | 否 | 是 | 伸縮活動的等待狀態的固定字串資訊。 | 長度不超過128個字元。 Auto Scaling每次推送訊息到通知對象時,會同時發送您預先指定的 NotificationMetadata 參數值,便於管理和標記不同類別的通知資訊。當您同時指定了NotificationArn 參數時,NotificationMetadata 參數方可生效。 |
ScalingGroupId | String | 是 | 否 | 伸縮組ID。 | 無 |
DefaultResult | String | 否 | 是 | 等待狀態結束後的下一步動作。 當伸縮組發生彈性收縮活動(SCALE_IN )並觸發多個生命週期掛鈎時,DefaultResult=ABANDON 的生命週期掛鈎觸發的等待狀態結束時,會提前將其他對應的等待狀態提前結束。其他情況下,下一步動作均以最後一個結束等待狀態的下一步動作為準。 | 取值: |
LifecycleTransition | String | 是 | 是 | 生命週期掛鈎適用的伸縮活動類型。 | 取值: SCALE_OUT:伸縮組彈性擴張活動。 SCALE_IN:伸縮組彈性收縮活動。
|
樣本
YAML
格式
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
格式
{
"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"
]
}
}
}
}