管理定时启停规则

定时启停功能可实现按命名空间定时批量启停应用,例如定时启停开发环境或测试环境的全部应用,帮助您提高硬件资产利用率、降低资源闲置成本。本文介绍如何在SAE控制台管理定时启停规则以及使用Crontab表达式。

准备工作

命名空间应用定时启停功能依赖系统运维管理 OOS(CloudOps Orchestration Service),请先创建OOSServiceRole RAM角色,并为该角色赋予管理SAE的完整权限AliyunSAEFullAccess。更多信息,请参见什么是系统运维管理

说明

如果您已经创建OOSServiceRole角色,则只需为其添加权限AliyunSAEFullAccess。

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 角色

  3. 角色页面,单击创建角色

  4. 创建角色页面,选择可信实体类型为阿里云服务,然后单击下一步

  5. 配置角色页签的角色类型区域选择普通服务角色,输入角色名称OOSServiceRole,从选择受信服务下拉列表中选择系统运维管理,并单击完成

  6. 创建完成页签,单击为角色授权

  7. 添加权限面板的选择权限区域,选择系统策略,在文本框中输入AliyunSAEFullAccess,在下方的权限列表单击该权限,单击确定

  8. 单击完成

创建定时启停规则

  1. 登录SAE控制台

  2. 在左侧导航栏,单击命名空间(环境),在顶部菜单栏选择地域,然后单击具体命名空间名称。

  3. 在左侧导航栏,单击定时启停规则,在定时启停规则页面单击创建定时启停规则

  4. 创建定时启停规则面板,配置规则信息,并单击确定

    配置项

    说明

    规则名称

    定时启停规则的名称。必须以小写字母开头,并以数字或小写字母结尾,仅可包含小写字母、中文字符、数字及短划线(-),不超过63个字符。

    触发动作

    • 批量启动应用:批量启动本命名空间下选中的应用。

    • 批量停止应用:批量停止本命名空间下选中的应用。

    执行频率

    • 仅执行一次:在指定日期和时间执行一次后不再执行。

    • 定期执行:按照指定的日期和时间循环执行。

      • 日粒度:指定每个月需要执行的具体日期和时间,每月循环。

      • 周粒度:指定每周需要执行的具体日期和时间,每周循环。

      • 高级:使用Crontab表达式定义执行时间,各字段的取值范围如下所示:

        • (分钟):[0, 59]。

        • (小时):[0, 23],0表示午夜0时。

        • (每个月的具体日期):[1, 31]。

        • :[1, 12]或[JAN, DEC],不可修改。

        • (星期):[1, 7]或[SUN, SAT]。1表示星期日,2表示星期一,依次类推。

          例如设置触发时间为星期二、四、六,则需输入3,5,7TUE,THU,SAT

          说明

          [1, 7]表示取值范围,如果您输入1,7则表示触发时间仅为星期日和星期六两天。

    执行前通知配置

    配置一个钉钉机器人Webhook地址,SAE将在每次开始执行定时任务前向此处指定的钉钉机器人发送通知,方便您第一时间获取系统运维动作信息。钉钉机器人的自定义关键词需要设置为SAE,具体操作,请参见获取钉钉机器人Webhook地址

    触发的应用列表

    • 启停全部应用:启动或停止目标命名空间内所有的应用。

    • 启停部分应用:选中启停部分应用后,在下方列表中选中需要执行启动或停止操作的应用。

    说明

    如果选择了全部应用,SAE在每次执行定时启停任务之前,将自动去扫描最新的应用列表,然后再执行启停操作。

    创建好的规则将显示在定时启停规则页面上,且默认为启用状态。您可以对规则进行查看、编辑、启停、删除等操作。

使用Crontab表达式

借助Crontab表达式,可以定义更灵活的定时启停规则触发时间和循环规律。

注意事项如下:

  • 只能按指定启停触发时间,如果指定了其中一个,另一个则必须填写通配符?,表示不加限制。例如,如果指定每个月第1日、第2日,则必须在输入框中填写?

  • 在Crontab表达式内必须使用英文半角字符,例如英文通配符星号(*)、问号(?)。

  • 枚举值之间用英文半角逗号(,)分隔。

  • 值的区间用短划线(-)表示,例如:输入框中填写1-5,表示第1日~第5日。

  • 填写周时,1表示周日,7表示周六,即每周从周日到周六的数字为1~7。

含义

填写方法

Crontab表达式

每周一至周五22:30

3022?*2,3,4,5,6

30 22 ? * 2,3,4,5,6

每个月第5日、第15日和第25日的0时

005,15,25*?

0 0 5,15,25 * ?

常见问题

创建OOSServiceRole RAM角色后,报错信息提示OOSServiceRole不存在,如何处理?

确认已创建的OOSServiceRole RAM角色的信任策略是否如下所示。如果信任策略不同,表示创建角色时填写的信息有误,例如,可信实体类型选择有误,应选择阿里云服务。因此,您需要重新创建OOSServiceRole RAM角色。具体操作,请参见准备工作

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "oos.aliyuncs.com"
        ]
      }
    }
  ],
  "Version": "1"
}

如何为应用设置定时重启?

不支持。但是,您可以为应用设置定时启停规则,达到类似的结果。