Tous les produits
Search
Centre de documentation

Resource Orchestration Service:ALIYUN::ESS::LifecycleHook

Dernière mise à jour :Aug 10, 2026

La ressource ALIYUN::ESS::LifecycleHook permet de créer un hook de cycle de vie pour un groupe d'Auto Scaling.

Syntaxe

{
  "Type": "ALIYUN::ESS::LifecycleHook",
  "Properties": {
    "LifecycleHookName": String,
    "NotificationArn": String,
    "HeartbeatTimeout": Integer,
    "NotificationMetadata": String,
    "ScalingGroupId": String,
    "DefaultResult": String,
    "LifecycleTransition": String
  }
}

Propriétés

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

LifecycleHookName

String

Non

Oui

Nom du hook de cycle de vie. Ce nom doit être unique au sein d'un même groupe d'Auto Scaling.

Le nom doit comporter entre 2 et 40 caractères et peut contenir des lettres, des chiffres, ainsi que les caractères de soulignement (_), les traits d'union (-) et les points (.). Il doit commencer par une lettre ou un chiffre.

La valeur par défaut correspond à l'ID du hook de cycle de vie.

NotificationArn

String

Non

Oui

ARN (Alibaba Cloud Resource Name) de la méthode de notification.

Les méthodes de notification suivantes sont prises en charge : modèles CloudOps Orchestration Service (OOS), files d'attente Message Service (MNS) et rubriques MNS. Spécifiez la valeur de la propriété au format acs:ess:{region}:{account-id}:{resource-relative-id}.

  • region : région dans laquelle réside le groupe d'Auto Scaling

  • account-id : ID du compte Alibaba Cloud

Formats de valeur :

  • Format de valeur pour une file d'attente MNS : acs:ess:{region}:{account-id}:queue/{queuename}

  • Format de valeur pour une rubrique MNS : acs:ess:{region}:{account-id}:topic/{topicname}

  • Format de valeur pour un modèle OOS : acs:ess:{region}:{account-id}:oos/{template_name}

HeartbeatTimeout

Integer

Non

Oui

Délai d'expiration du hook de cycle de vie. Pendant cette période, les activités du groupe d'Auto Scaling restent en attente. À l'issue du délai, Auto Scaling exécute l'action définie par DefaultResult. Une fois le hook créé, appelez l'opération RecordLifecycleActionHeartbeat pour prolonger la durée pendant laquelle les instances Elastic Compute Service (ECS) demeurent en attente. Appelez également l'opération CompleteLifecycleAction afin de mettre fin prématurément à l'état d'attente des activités de mise à l'échelle.

Valeurs valides : 30 à 21600.

Unité : secondes.

Valeur par défaut : 600.

NotificationMetadata

String

Non

Oui

Chaîne fixe incluse dans la notification envoyée par Auto Scaling lorsque les activités de mise à l'échelle sont en attente.

La chaîne ne doit pas dépasser 128 caractères.

Auto Scaling transmet la valeur spécifiée pour NotificationMetadata avec le message de notification, ce qui facilite la catégorisation des notifications. Cette propriété n'est effective que si NotificationArn est renseignée.

ScalingGroupId

String

Oui

Non

ID du groupe d'Auto Scaling.

Aucune.

DefaultResult

String

Non

Oui

Action exécutée par Auto Scaling pour le groupe d'Auto Scaling lorsque le hook de cycle de vie arrive à expiration.

Si plusieurs hooks de cycle de vie sont déclenchés lors d'une activité de scale-in et qu'un hook configuré avec DefaultResult=ABANDON expire, les autres hooks du même groupe expirent également. Dans les autres cas, Auto Scaling n'exécute l'action qu'après l'expiration de tous les hooks. L'action varie selon la valeur DefaultResult spécifiée pour le dernier hook arrivé à expiration.

Valeurs valides :

  • CONTINUE (par défaut) : Auto Scaling répond à une activité de scale-in ou de scale-out.

  • ABANDON : Auto Scaling libère les instances ECS créées lors des scale-outs ou retire les instances ECS du groupe d'Auto Scaling lors des scale-ins.

LifecycleTransition

String

Oui

Oui

Type d'activité de mise à l'échelle à laquelle appliquer le hook de cycle de vie.

Valeurs valides :

  • SCALE_OUT : activité de scale-out

  • SCALE_IN : activité de scale-in

Valeurs de retour

Fn::GetAtt

  • LifecycleHookId : ID du hook de cycle de vie.

  • ScalingGroupId : ID du groupe d'Auto Scaling.

Exemples

  • YAML format

    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 format

    {
      "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"
            ]
          }
        }
      }
    }