メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

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

インスタンスがライフサイクルフックの移行状態にあるときに Auto Scaling が通知のため使用する、通知ターゲットの Amazon リソースネーム (ARN)。Amazon SQS キューまたは Amazon SNS トピックを指定できます。通知メッセージには次の情報が含まれます: ライフサイクルアクショントークン、ユーザーアカウント ID、Auto Scaling グループ名、ライフサイクルフック名、インスタンス ID、移行ライフサイクル、通知のメタデータ。

Required: No

Type: String

更新に伴う要件: 中断はありません。

RoleARN

指定された通知ターゲットへの発行を Auto Scaling グループに許可する IAM ロールの ARN。ロールには Amazon SNS および Amazon SQS へのアクセス権限が必要です。

Required: No

Type: String

更新に伴う要件: 中断はありません。

戻り値

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref によりリソース名が返されます。 例:

Copy
{ "Ref": "myLifecycleHook" }

Ref は、ライフサイクルフック名 (mylifecyclehookname など) を返します。

Ref 関数の使用方法の詳細については、「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

以下の資料も参照してください。