AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::AutoScaling::LifecycleHook

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

语法

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

JSON

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

YAML

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

属性

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

AutoScalingGroupName

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

Required: Yes

Type: String

更新要求替换

DefaultResult

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

Required: No

Type: String

更新要求无需中断

HeartbeatTimeout

生命周期钩子超时之前的时间量。如果生命周期钩子超时,则 Auto Scaling 执行您在 DefaultResult 属性中指定的操作。

Required: No

Type: Integer

更新要求无需中断

LifecycleTransition

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

Required: Yes

Type: String

更新要求无需中断

NotificationMetadata

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

Required: No

Type: String

更新要求无需中断

NotificationTargetARN

通知目标的 Amazon 资源名称 (ARN),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 将返回资源名称。 示例:

Copy
{ "Ref": "myLifecycleHook" }

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

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

示例

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

JSON

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

YAML

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

另请参阅