通過SAE建立Job工作範本,可以實現周期性自動執行任務,或者手動發送HTTP/HTTPS請求來觸發任務執行,並且在任務完成後快速釋放計算資源。
使用情境
SAE Job適用於對延時不敏感的非同步離線情境。
時間驅動處理情境:例如整點發送優惠券、每天更新收益、每天重新整理標籤數和人群資料。
批量處理資料:例如按月批量統計報表資料、批次更新簡訊狀態,對即時性要求低。
非同步執行解耦:例如重新整理活動狀態、非同步執行離線查詢、與內部邏輯解耦。
CI/CD:執行完CI/CD持續整合任務後,能夠立即釋放計算資源。
SAE Job和開源自建產品在不同情境下的對比資訊,請參見應用情境。
前置準備
如果是主帳號,則需要開通Serverless應用引擎、EventBridge並授權。
如果需要使用RAM使用者操作,準備工作如下:
阿里雲帳號開通EventBridge。
阿里雲帳號開通SAE Job,並根據控制台提示建立服務關聯角色
AliyunServiceRoleForEventBridgeSendToSAE。阿里雲帳號為RAM使用者授予
AliyunEventBridgeReadOnlyAccess許可權。具體操作,請參見為RAM使用者授權。
使用流程
在執行任務前,需要首先建立工作範本。
通過定時規則或發送HTTP/HTTPS請求的方式觸發任務,每次觸發均會根據工作範本產生新的任務。
每個任務均由SAE建立新的執行個體並執行任務。
建立工作範本
在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊建立工作範本。
在基本資料嚮導頁,配置以下資訊,然後單擊下一步。
配置項
說明
工作範本名稱
自訂工作範本名稱。
命名空間類型
選擇系統建立的命名空間或選擇已有命名空間。
任務部署方式
選擇鏡像部署:點擊設定鏡像,選擇Demo鏡像、我的阿里雲鏡像(即同帳號ACR執行個體的鏡像)、其它阿里雲帳號私人鏡像(即不同帳號ACR執行個體的鏡像)、或自訂鏡像(即非ACR執行個體的鏡像)來部署應用。也可以直接引用其他工作範本鏡像。製作、推送、拉取鏡像的方式與部署應用相同,請參見使用鏡像部署應用。
程式碼封裝部署:點擊設定程式碼封裝部署。選擇技術棧語言和程式碼封裝類型,然後上傳程式碼封裝並指定程式碼封裝運行環境。製作、上傳程式碼封裝的方式與部署應用相同,請參見使用程式碼封裝部署應用。
Shell指令碼:點擊配置Shell指令碼,參考頁面中的樣本指令碼配置任務的執行指令碼。
執行個體類型
Default:效能穩定,不會被搶佔和驅逐,適用於對即時性及穩定性要求高的情境。
BestEffort:有較大的效能波動,且可被搶佔和驅逐,適用於對即時性及穩定性無特殊要求的情境。
BestEffort 優先:是指系統會優先調度BestEffort類型執行個體,當BestEffort執行個體被搶佔時會自動Fallback到Default執行個體,避免任務執行中斷。
單一實例規格
指定任務運行時單個執行個體的CPU和記憶體規格。
並發執行個體數
指定任務在任一時刻應該並發啟動並執行執行個體數量。
在任務設定嚮導頁,配置以下資訊,然後單擊下一步。
配置項
說明
任務類型
週期性任務
Cron運算式:用於定義任務執行的周期。可以手動輸入Cron運算式,或者單擊使用產生工具互動式地產生Cron運算式。
一次性任務(HTTP/HTTPS 觸發)
請求類型:按需選擇觸發任務執行的請求協議:HTTP、HTTPS、HTTP&HTTPS。
要求方法:按需選擇觸發任務執行的要求方法,可多選:GET、POST、PUT、PATCH、DELETE、HEAD。
安全配置:在下拉式清單選擇安全配置方式。取值如下:
無需配置:無需進行安全配置,接收到的所有URL請求均轉換為事件推送到事件匯流排EventBridge。
安全網域名稱:輸入安全的網域名稱資訊。只有使用該網域名稱訪問的URL請求支援轉換為事件推送到事件匯流排EventBridge,其餘請求均會被過濾。
IP網段:輸入正確的IP地址或者IP網段。只有使用該IP地址或該IP網段內的IP地址訪問的URL請求支援轉換為事件推送到事件匯流排EventBridge,其餘請求均會被過濾。
並發策略
展開更多設定,選擇並發策略。
Allow:允許並發運行任務。定時任務不斷建立新的任務。
Forbid:禁止並發運行任務。在前一個任務未完成時,不建立新任務。
Replace:當到達新任務建立時間點,而前一個任務未完成時,新的任務會取代前一個任務。
逾時時間
指定任務可啟動並執行時間期限,逾時未結束,系統將嘗試進行終止。取值範圍為[0, 604800],單位為秒。預設值為3600秒。
重試次數
指定任務失敗後進行重試的次數。取值範圍為[0, 10],預設為3次。
啟用任務分區
開啟啟用任務分區開關後,單擊編輯任務分區名稱,在編輯任務分區名稱面板進行配置。多用於處理巨量資料業務需求,將分區平均分給多個用戶端執行。
(可選)在進階設定嚮導頁,配置所需功能(以選擇鏡像部署為例)。
點擊建立,等待工作範本建立完成。
查看已建立的工作範本:在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊目標工作範本跳轉到工作範本詳情頁。
執行與啟停任務
執行循環性任務
週期性任務會根據建立工作範本時設定的Cron運算式來自動周期性執行任務。
執行一次性任務
一次性任務可以通過發送HTTP或HTTPS請求觸發執行(具體的請求協議與要求方法由建立工作範本時的配置決定)。
在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊目標工作範本跳轉到工作範本詳情頁。
在任务设置地區,擷取公網請求 URL或私網請求 URL。如果是從公網發起請求,後續需要使用公網請求 URL。
通過發送請求觸發任務執行。可以通過配置POST要求方法,在調用時將具體參數通過JSON格式傳入Body,參數說明詳見ExecJob。
樣本1:調用時,指定環境變數。
curl -d '{"Envs":[{"name":"aaa","value":"bbb"},{"name":"ccc","value":"ddd"}]}' -H 'Content-Type: application/json' <url> # 注意將<url>用實際值替換樣本2:調用時,指定並發執行個體數。
curl -d '{"Replicas":"3"}' -H 'Content-Type: application/json' <url> # 注意將<url>用實際值替換
手動觸發任務執行
在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊目標工作範本跳轉到工作範本詳情頁。
在工作範本詳情頁面,在右上方點擊手動執行任務。
停止任務
在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊目標工作範本跳轉到工作範本詳情頁。
在工作範本詳情頁面,在右上方點擊停止任務,根據頁面提示操作。
管理工作記錄
在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊目標工作範本跳轉到工作範本詳情頁。
在左側導覽列,單擊任務記錄,在任務記錄頁面,查看任務執行狀態,按需操作。
刪除任務:在操作列,單擊刪除,根據頁面提示操作。
查看詳情:單擊目標任務ID進入任務記錄詳情頁面,查看執行個體的運行狀態。
查看任務事件
在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊目標工作範本跳轉到工作範本詳情頁。
在左側導覽列,單擊事件資訊,在上方搜尋方塊中可以按照以下條件搜尋事件:來源名、事件原因、來源類型、事件等級。
編輯與刪除工作範本
在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊目標工作範本跳轉到工作範本詳情頁。
在右上方,單擊編輯工作範本或刪除工作範本,按照頁面提示操作。
刪除工作範本後,系統將刪除該工作範本下任務的所有執行個體(包括工作範本的建立資訊),以及系統幫您代購的SLS,並關閉日誌收集到SLS的功能。
回退歷史版本
修改工作範本後,如果新版本有問題,可以將工作範本回退至所需的歷史版本。
在SAE工作範本中,在頂部選擇目標地區和命名空間,點擊目標工作範本跳轉到工作範本詳情頁。
在右上方,單擊回退歷史版本。
在回退歷史版本頁面,選擇所需的版本,單擊確定。