全部产品
云市场

定时触发器ACS::TimerTrigger

更新时间:2019-08-16 13:37:38

用途

用于需要定时的运维场景。启动执行后,OOS即将执行置于等待状态,直到指定的时刻才开始后续的任务。任务完成以后重新进入到等待状态。

限制

触发器有如下限制:

  • 一个模版只允许有一个触发器动作。
  • 触发器动作的任务必须定义在模版Tasks中的第一个任务。
  • 被嵌套的模版(子模版)中不允许有触发器动作。

语法

  • YAML格式
  1. Tasks:
  2. - Name: timerTask # 任务名称
  3. Action: ACS::TimerTrigger
  4. Properties:
  5. Type: rate # 必填,时间类型,cron/rate表达式
  6. Expression: 5 minutes # 必填,rate表达式或cron表达式(cron表达式是按UTC时间计算)。
  7. EndDate: 2020-06-01T00:00:00Z # 必填,终止时间(UTC时间,格式为YYYY-MM-DD或YYYY-MM-DDThh:mm:ssZ)。
  • JSON格式(请参考YAML注释说明)
  1. {
  2. "Tasks": [
  3. {
  4. "Name": "timerTask",
  5. "Action": "ACS::TimerTrigger",
  6. "Properties": {
  7. "Type": "rate",
  8. "Expression": "5 minutes",
  9. "EndDate": "2020-06-01 00:00:00 UTC"
  10. }
  11. }
  12. ]
  13. }

流程图

流程图

说明

  • 用户创建执行后,父执行即进入等待(Waiting)状态。
  • 到达指定时间后,父执行即进入执行中(Running)状态。同时,父执行自动创建一个子执行,使用同样的模板,同样的参数,但是跳过触发器任务(Trigger Task)直接执行后续任务。
  • 等到子执行完成后,如图中的成功(Success)状态,也可以是失败(Failed)或取消状态(Cancelled),父执行重新进入等待(Waiting)状态,等待到达下次指定时间,然后重复上述步骤。
  • 到达指定的终止时间后,父执行停止等待,完成执行并标记为成功(Success)。
  • 用户可以像取消普通执行一样取消父执行或子执行,被取消的执行状态为取消(Cancelled)。

示例

如下模板:定时启动指定实例。

  • YAML格式:
  1. ---
  2. FormatVersion: OOS-2019-06-01
  3. Description: Schedule to reboot ECS instances.
  4. Tasks:
  5. - Name: timer
  6. Action: ACS::TimerTrigger
  7. Properties:
  8. Type: cron
  9. Expression: 5 minute
  10. EndDate: 2020-12-20T00:00:00Z
  11. - Name: rebootInstance
  12. Action: ACS::ECS::RebootInstance
  13. Properties:
  14. InstanceId: "i-xxxxx"
  • JSON格式:
  1. {
  2. "FormatVersion": "OOS-2019-06-01",
  3. "Description": "Schedule to reboot ECS instances.",
  4. "Tasks": [
  5. {
  6. "Name": "timer",
  7. "Action": "ACS::TimerTrigger",
  8. "Properties": {
  9. "Type": "cron",
  10. "Expression": "5 minute",
  11. "EndDate": "2020-12-20 00:00:00 UTC"
  12. }
  13. },
  14. {
  15. "Name": "rebootInstance",
  16. "Action": "ACS::ECS::RebootInstance",
  17. "Properties": {
  18. "InstanceId": "i-xxxxx"
  19. }
  20. }
  21. ]
  22. }