Todos os produtos
Search
Central de documentação

CloudOps Orchestration Service:ACS::EventTrigger

Última atualização: Jun 28, 2026

Descrição

O ACS::EventTrigger executa automaticamente operações de O&M orientadas por eventos. Após a execução de um modelo que contém essa ação, o processo entra no estado Waiting. Quando o evento monitorado ocorre, a execução passa para o estado Running e inicia imediatamente as tarefas subsequentes definidas no modelo. Por exemplo, ao receber uma notificação de evento de interrupção de instância preemptível, o Operation Orchestration Service (OOS) remove a instância preemptível interrompida da lista de servidores de back-end do Server Load Balancer (SLB).

O OOS monitora eventos como notificações de status de serviços em nuvem, eventos operacionais e exceções de negócios. Filtre os eventos por nome do CloudOps Orchestration Service, nome do evento, nível do evento e detalhes do evento.

Limites

A ação ACS::AlarmTrigger tem os seguintes limites:

  • Use apenas uma ação ACS::AlarmTrigger por modelo.

  • Defina a tarefa que contém a ação ACS::AlarmTrigger como a primeira tarefa no parâmetro Tasks do modelo.

  • Não use a ação ACS::AlarmTrigger em modelos filhos.

Sintaxe

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

Formato da notificação de evento

Antes de configurar regras de filtro e saídas para eventos monitorados, compreenda o formato da notificação de evento. As notificações usam o formato JSON. A camada externa contém atributos comuns, enquanto a seção content apresenta os detalhes do evento. O exemplo abaixo segue o mesmo formato das notificações de evento do CloudMonitor. Para mais informações, consulte Eventos de serviços da Alibaba Cloud.

Exemplo:

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

Filtragem de eventos

  • Regras de filtro

    • Um evento corresponde ao filtro apenas se contiver todos os atributos usados como condições e se a estrutura de aninhamento desses atributos for idêntica à dos atributos do evento.

    • Os valores dos atributos de condição de filtro diferenciam maiúsculas de minúsculas.

    • Se o valor de um atributo de condição for um array, ele deverá conter pelo menos um elemento. A condição será atendida se qualquer elemento do array corresponder ao valor de um atributo do evento.

    • Quando tanto o atributo da condição quanto o atributo do evento forem arrays, a correspondência ocorrerá se houver interseção entre os elementos de ambos.

    • O evento é acionado somente quando os valores de todos os atributos de condição coincidirem com os valores dos atributos do evento.

  • Atributos disponíveis para definição de condições de filtro

    • Product: Nome do serviço em nuvem. Para valores válidos, consulte a seção Formato da notificação de evento ou chame a API DescribeSystemEventMetaList do CloudMonitor.

    • Name: Nome do evento. Para valores válidos, consulte a seção Formato da notificação de evento ou chame a API DescribeSystemEventMetaList do CloudMonitor.

    • Level: Nível do evento. Valores válidos: CRITICAL, WARN, INFO e . O valor representa todos os níveis de eventos.

    • Content: Detalhes do evento. Para verificar os atributos e valores disponíveis para filtragem, consulte a seção Formato da notificação de evento.

Saídas de eventos

Defina o parâmetro Outputs da tarefa para transmitir dados do evento às tarefas subsequentes. O campo ValueSelector usa uma expressão jq para extrair dados da notificação de evento em formato JSON. Para entender a estrutura da notificação, consulte a seção Formato da notificação de evento.

Exemplos

O exemplo a seguir inicia uma instância do Elastic Compute Service (ECS) imediatamente após ela ser parada:

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