構文
{
"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 | いいえ | はい | 通知方法の Alibaba Cloud Resource Name(ARN)。 | CloudOps Orchestration Service(OOS)テンプレート、Message Service(MNS)キュー、および MNS トピックなどの通知方法がサポートされています。プロパティ値は acs:ess:{region}:{account-id}:{resource-relative-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 | いいえ | はい | ライフサイクルフックのタイムアウト期間。タイムアウト期間内は、スケーリンググループのアクティビティは保留状態です。タイムアウト期間が終了すると、Auto Scaling は DefaultResult で指定されたアクションを実行します。ライフサイクルフックを作成した後、RecordLifecycleActionHeartbeat オペレーションを呼び出して、Elastic Compute Service(ECS)インスタンスが保留状態になっているタイムアウト期間を延長できます。また、CompleteLifecycleAction オペレーションを呼び出して、スケーリングアクティビティの保留状態を予定より早く終了することもできます。 | 有効な値: 30 ~ 21600。 単位: 秒。 デフォルト値: 600。 |
NotificationMetadata | String | いいえ | はい | スケーリングアクティビティが保留状態のときに Auto Scaling が送信する通知内の固定文字列。 | 文字列は最大 128 文字までです。 Auto Scaling は、指定された NotificationMetadata 値を通知メッセージとともに送信するため、通知を簡単に分類できます。このプロパティは、NotificationArn が指定されている場合にのみ有効になります。 |
ScalingGroupId | String | はい | いいえ | スケーリンググループの ID。 | なし。 |
DefaultResult | String | いいえ | はい | ライフサイクルフックがタイムアウトしたときに、Auto Scaling がスケーリンググループに対して実行するアクション。 スケーリンググループの スケールイン アクティビティ中に複数のライフサイクルフックがトリガーされ、DefaultResult=ABANDON で構成されたライフサイクルフックがタイムアウトした場合、同じスケーリンググループ内の残りのライフサイクルフックもタイムアウトします。それ以外の場合、Auto Scaling はすべてのライフサイクルフックがタイムアウトした後にのみアクションを実行します。アクションは、最後にタイムアウトしたライフサイクルフックに指定した DefaultResult 値によって異なります。 | 有効な値: |
LifecycleTransition | String | はい | はい | ライフサイクルフックを適用するスケーリングアクティビティのタイプ。 | 有効な値: |
例
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:' # ARN のプレフィックス
- Ref: ALIYUN::Region # リージョン
- ':'
- Ref: ALIYUN::TenantId # アカウント ID
- ':'
- oos/ACS-ESS-LifeCycleRunCommand # OOS テンプレート名
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 # ライフサイクルフック 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", // ライフサイクルフック ID
"Value": {
"Fn::GetAtt": [
"LifecycleHook",
"LifecycleHookId"
]
}
}
}
}