Tous les produits
Search
Centre de documentation

CloudOps Orchestration Service:ACS::EventTrigger

Dernière mise à jour :Aug 11, 2026

Description

L'action ACS::EventTrigger exécute automatiquement des opérations de maintenance et d'exploitation pilotées par les événements. Une fois le modèle contenant cette action exécuté, l'exécution passe à l'état Waiting (En attente). Lorsque l'événement surveillé se produit, l'exécution passe à l'état Running (En cours d'exécution) et lance immédiatement les tâches suivantes définies dans le modèle. Par exemple, lorsque Operation Orchestration Service (OOS) reçoit une notification d'interruption d'instance préemptible (preemptible instance interruption event), OOS retire l'instance préemptible interrompue de la liste des serveurs backend de Server Load Balancer (SLB).

OOS surveille divers événements, tels que les notifications d'état des services cloud, les événements opérationnels et les exceptions métier. Filtrez ces événements selon le nom de CloudOps Orchestration Service, le nom de l'événement, son niveau et ses détails.

Limites

L'action ACS::AlarmTrigger est soumise aux limites suivantes :

  • Un modèle ne peut contenir qu'une seule action ACS::AlarmTrigger.

  • La tâche incluant l'action ACS::AlarmTrigger doit être définie comme première tâche dans le paramètre Tasks d'un modèle.

  • L'utilisation de l'action ACS::AlarmTrigger n'est pas autorisée dans les modèles enfants.

Syntaxe

Tasks:
  - Name: taskName # The name of the task.
    Action: 'ACS::EventTrigger'
    Properties:
      Product: productName1 # The name of the cloud service, such as ECS. Type: String. 
      Name:          # The name of the event, such as ["Instance:StateChange"]. Type: List. 
        - eventName1
      Level:        # The level of the event, such as ["INFO"]. Type: List. 
        - eventLevel1
      Content:  #  The details of the event, such as { "state":["Stopped"] }. Type: Map. 
        contenAttrKey1: # The name of the attribute that is used to filter event details.
          - value1 # The value of the attribute that is used to filter event details.
    Outputs: # Optional. The output of the task. 
      outputParameterName1: # The name of the output parameter. The name can contain letters, digits, underscores (_), and hyphens (-). It can be up to 200 characters in length. 
        ValueSelector: "jq selector" # The jQuery selector for selecting the data to return, such as .content.resourceId. The jQuery selector extracts information from an event notification in the JSON format. 
        Type: type1 # Optional. The type of the output parameter. The valid values include the basic parameter types supported by the YAML or JSON format, such as String, Number, Boolean, List or Array, and Object. Default value: String.
{
    "Tasks": [
        {
            "Name": "taskName",
            "Action": "ACS::EventTrigger",
            "Properties": {
                "Product": "productName1",
                "Name": [
                    "eventName1"
                ],
                "Level": [
                    "eventLevel1"
                ],
                "Content": {
                    "contenAttrKey1": [
                        "value1"
                    ]
                }
            },
            "Outputs": {
                "outputParameterName1": {
                    "ValueSelector": "jq selector",
                    "Type": "type1"
                }
            }
        }
    ]
}

Format de notification d'événement

Avant de configurer les règles de filtrage et la sortie pour les événements surveillés, familiarisez-vous avec le format de notification d'événement. Les notifications d'événements sont au format JSON. La couche externe contient des attributs communs, tandis que la section content renferme les détails de l'événement. L'exemple ci-dessous reprend le même format que les notifications d'événements de CloudMonitor. Pour plus d'informations, reportez-vous à la rubrique sur les événements des services Alibaba Cloud.

Exemple :

{
    "product": "ECS",
    "resourceId": "acs:ecs:cn-shanghai:1612345678890:instance/i-abcdef",
    "level": "WARN",
    "instanceName": "instanceName",
    "regionId": "cn-hangzhou",
    "name": "Instance:PreemptibleInstanceInterruption",
    "content": {
        "instanceId": "i-abcdef",
        "action": "delete"
    }
}

Filtrage des événements

  • Règles de filtrage

    • Un événement correspond uniquement s'il contient tous les attributs utilisés comme conditions de filtrage et si la structure d'imbrication des attributs de condition de filtrage est identique à celle des attributs de l'événement.

    • Les valeurs des attributs de condition de filtrage sont sensibles à la casse.

    • Si la valeur d'un attribut de condition de filtrage est un tableau, ce dernier doit contenir au moins un élément. Si un élément du tableau correspond à la valeur d'un attribut d'événement, cet attribut de condition de filtrage correspond à l'attribut d'événement.

    • Si les valeurs d'un attribut de condition de filtrage et d'un attribut d'événement sont toutes deux des tableaux, l'attribut de condition de filtrage correspond à l'attribut d'événement dès qu'un élément du premier tableau correspond à un élément du second.

    • Un événement est déclenché si les valeurs de tous les attributs de condition de filtrage correspondent aux valeurs des attributs de l'événement.

  • Attributs pouvant être définis comme conditions de filtrage

    • Product : le nom du service cloud. Pour connaître les valeurs valides, reportez-vous à la section Format de notification d'événement ou appelez l'API DescribeSystemEventMetaList de CloudMonitor.

    • Name : le nom de l'événement. Pour connaître les valeurs valides, reportez-vous à la section Format de notification d'événement ou appelez l'API DescribeSystemEventMetaList de CloudMonitor.

    • Level : le niveau de l'événement. Valeurs valides : CRITICAL, WARN, INFO et . La valeur spécifie tous les niveaux d'événements.

    • Content : les détails de l'événement. Pour consulter les attributs et valeurs permettant le filtrage, reportez-vous à la section Format de notification d'événement.

Sorties d'événement

Définissez les Outputs de la tâche afin de transmettre les données d'événement aux tâches suivantes. Le paramètre ValueSelector utilise une expression jq pour extraire les données de la notification d'événement au format JSON. Pour connaître la structure de la notification, reportez-vous à la section Format de notification d'événement.

Exemples

L'exemple suivant démarre immédiatement une instance Elastic Compute Service (ECS) après son arrêt :

---
FormatVersion: OOS-2019-06-01
Description: Start ECS instance when instance is stopped.
Parameters:
  OOSAssumeRole:
    Description: The RAM role to be assumed by OOS.
    Type: String
    Default: OOSServiceRole
RamRole: '{{OOSAssumeRole}}'
Tasks:
  - Name: whenInstanceStopped
    Action: 'ACS::EventTrigger'
    Properties:
      Product: ECS
      Name:
        - 'Instance:StateChange'
      Level:
        - INFO
      Content:
        state:
          - Stopped
    Outputs:
      InstanceId:
        ValueSelector: .content.resourceId
        Type: String
  - Name: startInstance
    Action: 'ACS::ExecuteAPI'
    Properties:
      Service: ECS
      API: StartInstance
      Parameters:
        InstanceId: '{{ whenInstanceStopped.InstanceId }}'
    Description: start instance.
Outputs:
  InstanceId:
    Value: '{{ whenInstanceStopped.InstanceId }}'
    Type: String
{
  "FormatVersion": "OOS-2019-06-01",
  "Description": "Start ECS instance when instance is stopped.",
  "Parameters": {
    "OOSAssumeRole": {
      "Description": "The RAM role to be assumed by OOS.",
      "Type": "String",
      "Default": "OOSServiceRole"
    }
  },
  "RamRole": "{{OOSAssumeRole}}",
  "Tasks": [
    {
      "Name": "whenInstanceStopped",
      "Action": "ACS::EventTrigger",
      "Properties": {
        "Product": "ECS",
        "Name": [
          "Instance:StateChange"
        ],
        "Level": [
          "INFO"
        ],
        "Content": {
          "state": [
            "Stopped"
          ]
        }
      },
      "Outputs": {
        "InstanceId": {
          "ValueSelector": ".content.resourceId",
          "Type": "String"
        }
      }
    },
    {
      "Name": "startInstance",
      "Action": "ACS::ExecuteAPI",
      "Properties": {
        "Service": "ECS",
        "API": "StartInstance",
        "Parameters": {
          "InstanceId": "{{ whenInstanceStopped.InstanceId }}"
        }
      },
      "Description": "start instance."
    }
  ],
  "Outputs": {
    "InstanceId": {
      "Value": "{{ whenInstanceStopped.InstanceId }}",
      "Type": "String"
    }
  }
}