全部產品
Search
文件中心

Serverless App Engine:管理定時啟停規則

更新時間:Sep 03, 2024

定時啟停功能可實現按命名空間定時批量啟停應用,例如定時啟停開發環境或測試環境的全部應用,協助您提高硬體資產利用率、降低資源閑置成本。本文介紹如何在SAE控制台管理定時啟停規則以及使用Crontab運算式。

準備工作

命名空間應用定時啟停功能依賴CloudOps Orchestration Service (OOS),請先建立OOSServiceRole RAM角色,並為該角色賦予管理SAE的完整許可權AliyunSAEFullAccess。更多資訊,請參見什麼是系統營運管理

說明

如果您已經建立OOSServiceRole角色,則只需為其添加許可權AliyunSAEFullAccess。

  1. 使用Resource Access Management員登入RAM控制台

  2. 在左側導覽列,選擇身份管理 > 角色

  3. 角色頁面,單擊建立角色

  4. 建立角色頁面,選擇可信實體類型為阿里雲服務,然後單擊下一步

  5. 配置角色頁簽的角色類型地區選取項目普通服務角色,輸入角色名稱OOSServiceRole,從選擇受信服務下拉式清單中選擇CloudOps Orchestration Service,並單擊完成

  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則表示觸發時間僅為星期日和星期六兩天。

    執行前通知配置

    配置一個DingTalk機器人Webhook地址,SAE將在每次開始執行定時任務前向此處指定的DingTalk機器人發送通知,方便您第一時間擷取系統營運動作資訊。

    觸發的應用列表

    • 啟停全部應用:啟動或停止目標命名空間內所有的應用。

    • 啟停部分應用:選中啟停部分應用後,在下方列表中選中需要執行啟動或停止操作的應用。

    說明

    如果選擇了全部應用,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"
}

如何為應用設定定時重啟?

不支援。但是,您可以為應用設定定時啟停規則,達到類似的結果。