AWS CloudFormation
用户指南 (API 版本 2010-05-15)

AWS::AutoScaling::LifecycleHook

控制 Amazon EC2 Auto Scaling 组中的实例在启动或终止后的状态。在使用生命周期挂钩时,Auto Scaling 组在实例启动后(在它投入运行之前)将其暂停,或在实例终止时(在它完全终止前)将其暂停。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南 中的 Amazon EC2 Auto Scaling 生命周期挂钩

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::AutoScaling::LifecycleHook", "Properties" : { "AutoScalingGroupName" : String, "DefaultResult" : String, "HeartbeatTimeout" : Integer, "LifecycleHookName" : String, "LifecycleTransition" : String, "NotificationMetadata" : String, "NotificationTargetARN" : String, "RoleARN" : String } }

YAML

Type: AWS::AutoScaling::LifecycleHook Properties: AutoScalingGroupName: String DefaultResult: String HeartbeatTimeout: Integer LifecycleHookName: String LifecycleTransition: String NotificationMetadata: String NotificationTargetARN: String RoleARN: String

属性

有关有效值和默认值的信息,请参阅 Amazon EC2 Auto Scaling API 参考 中的 LifecycleHook

AutoScalingGroupName

生命周期挂钩的 Auto Scaling 组的名称。

Required: Yes

Type: String

更新要求替换

DefaultResult

生命周期挂钩超时结束时或发生意外失败时 Auto Scaling 组执行的操作。有效值为 CONTINUE (默认值) 和 ABANDON

Required: No

Type: String

更新要求无需中断

HeartbeatTimeout

在生命周期挂钩超时之前经过的时间长度(以秒为单位)。如果生命周期挂钩超时,则 Amazon EC2 Auto Scaling 执行您在 DefaultResult 属性中指定的操作。

Required: No

Type: Integer

更新要求无需中断

LifecycleHookName

生命周期挂钩的名称。长度约束:最小长度为 1。长度上限为 255。

Required: No

Type: String

更新要求替换

LifecycleTransition

要挂载生命周期挂钩的 Amazon EC2 实例的状态。有关有效值,请参阅 Amazon EC2 Auto Scaling API 参考 中的 LifecycleHook 数据类型的 LifecycleTransition 内容。

Required: Yes

Type: String

更新要求无需中断

NotificationMetadata

Amazon EC2 Auto Scaling 向通知目标发送消息时您希望包含的其他信息。

Required: No

Type: String

更新要求无需中断

NotificationTargetARN

通知目标的 Amazon 资源名称 (ARN),Amazon EC2 Auto Scaling 使用该目标在实例处于生命周期挂钩的转换状态时发出通知。可以指定 Amazon SQS 队列或 Amazon SNS 主题。通知消息包含以下信息:生命周期操作令牌、用户账户 ID、Auto Scaling 组名称、生命周期挂钩名称、实例 ID、生命周期转换和通知元数据。

Required: No

Type: String

更新要求无需中断

RoleARN

IAM 角色的 ARN,该角色允许 Auto Scaling 组发布到指定通知目标。角色需要拥有对 Amazon SNS 和 Amazon SQS 的权限。

Required: No

Type: String

更新要求无需中断

返回值

当该资源的逻辑 ID 提供给 Ref内部函数时,Ref 将返回资源名称。 示例:

{ "Ref": "myLifecycleHook" }

Ref 返回生命周期挂钩名称,如 mylifecyclehookname

有关使用 Ref 功能的更多信息,请参阅参考

示例

在以下模板代码段中,Amazon EC2 Auto Scaling 先暂停实例,然后将其完全终止。例如,在挂起状态下,您可以连接到实例并下载日志或任何其他数据,然后终止实例。

JSON

"myLifecycleHook": { "Type": "AWS::AutoScaling::LifecycleHook", "Properties": { "AutoScalingGroupName": { "Ref": "myAutoScalingGroup" }, "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING", "NotificationTargetARN": { "Ref": "lifecycleHookTopic" }, "RoleARN": { "Fn::GetAtt": [ "lifecycleHookRole", "Arn" ] } } }

YAML

myLifecycleHook: Type: AWS::AutoScaling::LifecycleHook Properties: AutoScalingGroupName: Ref: myAutoScalingGroup LifecycleTransition: "autoscaling:EC2_INSTANCE_TERMINATING" NotificationTargetARN: Ref: lifecycleHookTopic RoleARN: Fn::GetAtt: - lifecycleHookRole - Arn

另请参阅

  • Amazon EC2 Auto Scaling API 参考 中的 LifecycleHook(以了解有效值和默认值)

  • Amazon EC2 Auto Scaling 用户指南 中的生命周期挂钩