全部產品
Search
文件中心

CloudOps Orchestration Service:定時觸發器ACS::TimerTrigger

更新時間:Jun 30, 2024

用途

用於需要定時的營運情境。啟動執行後,OOS即將執行置於等待狀態,直到指定的時刻才開始後續的任務。任務完成以後重新進入到等待狀態。

限制

觸發器有如下限制:

  • 一個模版只允許有一個觸發器動作。

  • 觸發器動作的任務必須定義在模版Tasks中的第一個任務。

  • 被嵌套的模版(子模版)中不允許有觸發器動作。

文法

  • YAML格式

Tasks:
  - Name: timerTask # 任務名稱
    Action: ACS::TimerTrigger
    Properties:
      Type: cron # 必填,時間類型,可選cron、at或rate。
      Expression: '0 * * ? * *' # 必填,cron運算式(cron預設是按UTC時間計算)、日期時間運算式或rate。
          TimeZone: 'Asia/Shanghai' #  選填,所選時間對應的時區,預設為UTC。
      EndDate: '2020-12-29T09:19:30Z' # 必填,終止時間(UTC時間,格式為YYYY-MM-DD或YYYY-MM-DDThh:mm:ssZ)。
  • JSON格式(請參考YAML注釋說明)

{
  "Tasks": [
    {
      "Name": "timerTask",
      "Action": "ACS::TimerTrigger",
      "Properties": {
        "Type": "cron",
        "Expression": "0 * * ? * *",
        "EndDate": "2020-12-29T09:19:30Z",
        "TimeZone": "Asia/Shanghai"
      }
    }
  ]
}

流程圖

流程圖說明如下:

  • 使用者建立執行後,父執行即進入等待(Waiting)狀態。

  • 到達指定時間後,父執行即進入執行中(Running)狀態。同時,父執行自動建立一個子執行,使用同樣的模板,同樣的參數,但是跳過觸發器任務(Trigger Task)直接執行後續任務。

  • 等到子執行完成後,如圖中的成功(Success)狀態,也可以是失敗(Failed)或取消狀態(Cancelled),父執行重新進入等待(Waiting)狀態,等待到達下次指定時間,然後重複上述步驟。

  • 到達指定的終止時間後,父執行停止等待,完成執行並標記為成功(Success)。

  • 使用者可以像取消普通執行一樣取消父執行或子執行,被取消的執行狀態為取消(Cancelled)。

樣本

cron類型

  • YAML格式:

FormatVersion: OOS-2019-06-01
Description: Schedule to reboot ECS instances.
Tasks:
  - Name: timer
    Action: ACS::TimerTrigger
    Properties:
      Type: cron
      Expression: 5 minute
      EndDate: 2020-12-20T00:00:00Z
  - Name: rebootInstance
    Action: ACS::ECS::RebootInstance
    Properties:
      InstanceId: "i-xxxxx"
  • JSON格式:

{
  "FormatVersion": "OOS-2019-06-01",
  "Description": "Schedule to reboot ECS instances.",
  "Tasks": [
    {
      "Name": "timer",
      "Action": "ACS::TimerTrigger",
      "Properties": {
        "Type": "cron",
        "Expression": "5 minute",
        "EndDate": "2020-12-20 00:00:00 UTC"
      }
    },
    {
      "Name": "rebootInstance",
      "Action": "ACS::ECS::RebootInstance",
      "Properties": {
        "InstanceId": "i-xxxxx"
      }
    }
  ]
}

at類型

  • YAML格式:

FormatVersion: OOS-2019-06-01
Description: Schedule to reboot ECS instances.
Tasks:
  - Name: timer
    Action: ACS::TimerTrigger
    Properties:
      Type: at
      Expression: '2020-02-29T09:17:35Z'
      EndDate: 2020-12-20T00:00:00Z
  - Name: rebootInstance
    Action: ACS::ECS::RebootInstance
    Properties:
      InstanceId: "i-xxxxx"
  • JSON格式:

{
  "FormatVersion": "OOS-2019-06-01",
  "Description": "Schedule to reboot ECS instances.",
  "Tasks": [
    {
      "Name": "timer",
      "Action": "ACS::TimerTrigger",
      "Properties": {
        "Type": "at",
        "Expression": "2020-02-29T09:17:35Z",
        "EndDate": "2020-12-20T00:00:00.000Z"
      }
    },
    {
      "Name": "rebootInstance",
      "Action": "ACS::ECS::RebootInstance",
      "Properties": {
        "InstanceId": "i-xxxxx"
      }
    }
  ]
}