本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
Serverless 應用引擎 SAE(Serverless App Engine)支持短時任務(Job),能夠在短時間內快速創建大量的計算任務,并且在任務完成后快速釋放計算資源。這些短時任務具備單機、廣播、并行計算、分片運行、定時、失敗自動重試、事件觸發等特性,比開源任務框架使用更方便、更節省、更穩定、更透明和更省心。
前提條件
如果您需要使用RAM用戶操作,準備工作如下。
阿里云賬號開通EventBridge。
阿里云賬號開通SAE Job,并根據控制臺提示創建服務關聯角色AliyunServiceRoleForEventBridgeSendToSAE。
阿里云賬號為RAM用戶授予AliyunEventBridgeReadOnlyAccess權限。具體操作,請參見為RAM用戶授權。
使用場景
如果您對延時敏感或者需要高頻次調用,可以選擇SAE應用作為解決方案。SAE Job適用于對延時不敏感的異步離線場景。
時間驅動處理場景:例如整點發送優惠券、每天更新收益、每天刷新標簽數和人群數據。
批量處理數據:例如按月批量統計報表數據、批量更新短信狀態,對實時性要求低。
異步執行解耦:例如刷新活動狀態、異步執行離線查詢、與內部邏輯解耦。
CI/CD:執行完CI/CD持續集成任務后,能夠立即釋放計算資源。
SAE Job和開源自建產品在不同場景下的對比信息,請參見任務場景。
使用流程
在執行任務前,您首先需要創建任務模板,配置項包括任務的基本信息、部署配置和任務設置。創建完成后,您可以通過設置定時規則、調用HTTP請求和調用API的方式觸發任務,每次觸發均會根據任務模板生成新的任務,可以在具體任務模板的任務記錄頁面查看。同時,每個任務均會生成新的實例,可以在任務記錄頁面單擊目標任務查看詳情。
管理任務模板
創建任務模板
在SAE控制臺左側導航欄,單擊任務模板列表,在頂部菜單欄選擇地域。
在任務模板列表頁面,單擊創建任務模板。
在任務基本信息配置向導頁面,配置相關信息,然后單擊下一步:部署配置。
配置項
說明
任務模板名稱
輸入自定義的任務名稱。
任務類型
周期性任務
一次性任務(HTTP/HTTPS觸發)
專有網絡配置
自定義配置:選中后,可以為創建的任務選擇所需的命名空間、VPC、vSwitch及安全組。
自動配置:選中后,SAE將自動配置命名空間、VPC、vSwitch及安全組,無需手動選擇。
命名空間
選擇自定義配置時需要配置。
在下拉列表選擇創建好的命名空間。命名空間和VPC是一一映射關系,關于修改VPC的更多信息,請參見創建和管理專有網絡。
vSwitch
選擇自定義配置時需要配置。
可以單擊更改替換推薦可用區的vSwitch。 vSwitch數量的取值范圍為[1,3]。
安全組
選擇自定義配置時需要配置。
在下拉列表選擇安全組。如果VPC內沒有創建安全組,單擊創建安全組,根據提示創建安全組。更多信息,請參見創建安全組。
vCPU
選擇需要創建的實例vCPU規格。
內存
選擇需要創建的實例內存規格。
任務模板描述
輸入任務模板的基本情況。
在部署配置配置向導頁面,配置相關信息,然后單擊下一步:任務設置。
配置任務基礎配置。
本文以上傳JAR包的Java語言為例。
配置項
說明
技術棧語言
SAE支持Java、PHP、Shell、Python和其它語言(如C++、Go、.NET、Node.js等)。
任務部署方式
鏡像
WAR包部署
JAR包部署
任務運行環境
標準Java應用運行環境:適用于Spring Boot或Dubbo框架。
EDAS-Container-XXX:適用于HSF框架。
Java環境
Dragonwell X(推薦):支持OpenJDK,支持任務啟動及運行時加速,提升GC效率等。更多信息,請參見設置啟動命令。
Open JDK X:基于CentOS操作系統,基礎鏡像大。
openjdk-XXXXX-jdk-alpine3.9:基于Alphine操作系統,基礎鏡像小。
說明與CentOS操作系統相比,基于Alphine操作系統的Java環境附帶的工具或命令較少。如果選擇了openjdk-XXXXX-jdk-alpine3.9,可能會導致Webshell中部分命令無法執行。請根據實際情況選擇環境。
文件上傳方式
上傳JAR包:單擊選擇文件,選擇待部署JAR包。任務部署程序包名僅允許字母、數字,及短劃線(-)和下劃線(_)兩個特殊符號。
JAR包地址:輸入JAR包的存放地址。
引用其他任務模板JAR包:在引用任務模板下拉列表選擇目標JAR包。
版本
設置任務版本號,可以選擇輸入版本號或者單擊使用時間戳為版本號將時間戳作為版本號。
時區設置
選擇當前任務所在時區,例如UTC+8。
可選:配置任務高級配置。
任務的高級配置功能與應用相同。更多信息,請參見高級配置。
在任務設置配置向導頁面,配置相關信息,然后單擊下一步:確認規格。
配置項
說明
任務基本設置
Cron表達式
任務類型選擇周期性任務時需要配置。
如果定時規則比較簡單,可以單擊使用生成工具進行設置;如果定時規則復雜,工具無法實現,可以手動輸入Cron表達式。更多信息,請參見Cron表達式的使用。
一次性任務觸發設置
任務類型選擇一次性任務(HTTP/HTTPS觸發)時需要配置。
請求類型:按需選擇HTTP或HTTPS協議。
請求方法:在下拉列表選擇請求方法。取值如下:
GET
POST
PUT
PATCH
DELETE
HEAD
安全配置:在下拉列表選擇安全配置方式。取值如下:
無需配置:無需進行安全配置,接收到的所有URL請求均轉換為事件推送到事件總線EventBridge。
IP網段:輸入正確的IP地址或者IP網段。只有使用該IP地址或該IP網段內的IP地址訪問的URL請求支持轉換為事件推送到事件總線EventBridge,其余請求均會被過濾。
安全域名:輸入安全的域名信息。只有使用該域名訪問的URL請求支持轉換為事件推送到事件總線EventBridge,其余請求均會被過濾。
IP網段
安全配置選擇IP網段時需要配置。
最多支持添加5個IP地址或IP網段。配置項說明,請參見安全配置。
安全域名
安全配置選擇安全域名時需要配置。
最多支持添加5個安全域名。配置項說明,請參見安全配置。
時區設置
任務類型選擇周期性任務時需要配置。
默認為UTC+8。
并發實例數
指定任務在任一時刻并發運行的實例數量。
任務高級設置(可選)
并發策略
選擇并發策略。
Forbid:禁止并發運行任務。在前一個任務未完成時,不創建新任務。
Allow:允許并發運行任務。定時任務不斷創建新的任務。
Replace:當到達新任務創建時間點,而前一個任務未完成時,新的任務會取代前一個任務。
超時時間
指定任務可運行的時間期限,超時未結束,系統將嘗試進行終止。取值范圍為[0, 604800],單位為秒。默認值為3600秒。
重試次數
指定任務失敗后進行重試的次數。取值范圍為[0, 10],默認為3次。
啟用任務分片
打開啟用任務分片開關后,單擊編輯任務分片名稱,在編輯任務分片名稱面板進行配置。多用于處理大數據業務需求,將分片平均分給多個客戶端執行。
在確認規格配置向導頁面,仔細確認配置信息,然后單擊確認創建。
創建完成后,在任務模板列表頁面,查看已創建的任務信息。
編輯與刪除任務模板
如果需要更新任務模板,您可以在任務模板詳情頁面,單擊右上角的編輯任務模板進行修改。
如果需要刪除任務模板,您可以單擊右上角的刪除任務模板,按照頁面提示操作。
警告刪除任務模板后,系統將物理刪除該任務模板下任務所有的實例(包括任務模板的創建信息),以及系統幫您代購的SLS,并關閉日志收集到SLS的功能。
執行與啟停任務
在SAE控制臺左側導航欄,單擊任務模板列表,在頂部菜單欄選擇地域,單擊具體任務名稱。
在任務模板詳情頁面,按需操作。
執行任務
單擊手動執行任務,頁面會跳轉至任務記錄頁面。單擊目標任務ID,進入任務詳情頁面。
啟停任務
已停止的任務:單擊啟用任務。
運行中的任務:單擊停止任務。
管理任務記錄
在SAE控制臺左側導航欄,單擊任務模板列表,在頂部菜單欄選擇地域,單擊具體任務名稱。
在左側導航欄,單擊任務記錄,在任務記錄頁面,查看任務執行狀態,按需操作。
刪除任務
在操作列,單擊刪除,在彈出的刪除任務記錄對話框,單擊確定。
查看詳情
單擊目標任務ID進入任務詳情頁面,查看實例的運行狀態。
查看任務事件
在SAE控制臺左側導航欄,單擊任務模板列表,在頂部菜單欄選擇地域,單擊具體任務名稱。
在左側導航欄,單擊事件信息,在事件信息頁面,按需查看信息。
搜索條件如下:
來源類型:包括任務(Job)和任務實例(Pod)。
事件等級:包含Warning和Normal,需要關注Warning級別事件。
來源名:輸入事件來源名,例如應用名稱、應用實例名稱。
事件原因:輸入事件原因,例如Pod的FailedScheduling。
回退歷史版本
任務模板在SAE中創建后會不斷迭代升級,如果您發現部署的版本有問題,可以將在SAE創建的任務模板回退至所需的歷史版本。
在SAE控制臺左側導航欄,單擊任務模板列表,在頂部菜單欄選擇地域,單擊具體任務名稱。
在任務模板詳情頁面右上角,單擊回退歷史版本。
在回退歷史版本頁面,選擇所需的版本,設置發布策略。
可以單擊表格配置信息列的查看詳情,查看各個歷史版本的配置信息。
單擊確定。
在任務模板詳情頁面上方,單擊查看詳情,在變更詳情頁面,查看變更的具體執行狀態。如果執行狀態顯示執行成功,表示成功回退歷史版本。
為一次性任務配置參數
在一次性任務中,可以配置POST請求方法,并在調用時將具體參數通過JSON格式傳入Body。具體操作,請參見ExecJob。
示例1:調用時,指定環境變量。
curl -d '{"Envs":[{"name":"aaa","value":"bbb"},{"name":"ccc","value":"ddd"}]}' -H 'Content-Type: application/json' {url}
示例2:調用時,指定并發實例數。
curl -d '{"Replicas":"3"}' -H 'Content-Type: application/json' {url}
相關文檔
功能 | 文檔 |
SAEJob支持對開源Job的改造遷移。 | |
使用SAE Job,完成從任意Dockerfile到任意鏡像倉庫的CI流程,實現S2I(Source-to-Image)能力。 | |
使用云效2020,通過代碼包或鏡像方式持續構建和部署任務模板至SAE。 |