什么是函數(shù)工作流
FunctionGraph是一項基于事件驅(qū)動的函數(shù)托管計算服務(wù)。使用FunctionGraph函數(shù),只需編寫業(yè)務(wù)函數(shù)代碼并設(shè)置運行的條件,無需配置和管理服務(wù)器等基礎(chǔ)設(shè)施,函數(shù)以彈性、免運維、高可靠的方式運行。此外,按函數(shù)實際執(zhí)行資源計費,不執(zhí)行不產(chǎn)生費用。
①編寫代碼
用戶編寫業(yè)務(wù)代碼,目前支持Node.js、Python、Java、Go、C#、PHP等語言。
②上傳代碼
目前支持在線編輯、上傳ZIP或JAR包,從OBS引用ZIP包等。
③API和云產(chǎn)品事件源觸發(fā)函數(shù)執(zhí)行
通過RESTful API或者云產(chǎn)品事件源觸發(fā)函數(shù)執(zhí)行,生成函數(shù)實例,實現(xiàn)業(yè)務(wù)功能。
④彈性執(zhí)行
函數(shù)在執(zhí)行過程中,會根據(jù)請求量彈性擴容,支持請求峰值的執(zhí)行,此過程用戶無需配置,由FunctionGraph完成,并發(fā)數(shù)限制請參考約束與限制。
⑤查看日志
FunctionGraph函數(shù)實現(xiàn)了與云日志服務(wù)的對接,您無需配置,即可查看函數(shù)運行日志信息。
⑥查看監(jiān)控
FunctionGraph函數(shù)實現(xiàn)了與云監(jiān)控服務(wù)的對接,您無需配置,即可查看圖形化監(jiān)控信息。
⑦計費方式
函數(shù)執(zhí)行結(jié)束后,根據(jù)函數(shù)請求執(zhí)行次數(shù)和執(zhí)行時間計費。
函數(shù)工作流有哪些功能
函數(shù)管理
提供控制臺管理函數(shù)
函數(shù)支持Node.js、Java、Python、Go等多種運行時語言
函數(shù)支持多種代碼導(dǎo)入方式
支持在線編輯代碼、OBS文件引入、上傳ZIP包、上傳JAR包等方式。
觸發(fā)器
函數(shù)多種類型觸發(fā)器。
日志和監(jiān)控
提供調(diào)用函數(shù)的監(jiān)控指標和運行日志的采集和展示,實時的圖形化監(jiān)控指標展示,在線查詢?nèi)罩荆奖阌脩舨榭春瘮?shù)運行狀態(tài)和定位問題。
初始化功能
引入initializer接口:
分離初始化邏輯和請求處理邏輯,程序邏輯更清晰,讓用戶更易寫出結(jié)構(gòu)良好,性能更優(yōu)的代碼。
用戶函數(shù)代碼更新時,系統(tǒng)能夠保證用戶函數(shù)的平滑升級,規(guī)避應(yīng)用層初始化冷啟動帶來的性能損耗。新的函數(shù)實例啟動后能夠自動執(zhí)行用戶的初始化邏輯,在初始化完成后再處理請求。
在應(yīng)用負載上升,需要增加更多函數(shù)實例時,系統(tǒng)能夠識別函數(shù)應(yīng)用層初始化的開銷,更準確的計算資源伸縮的時機和所需的資源量,讓請求延時更加平穩(wěn)。
函數(shù)流
函數(shù)流是用來編排FunctionGraph函數(shù)的工具,可以將多個函數(shù)編排成一個協(xié)調(diào)多個分布式函數(shù)任務(wù)執(zhí)行的工作流。
用戶通過在可視化的編排頁面,將事件觸發(fā)器、函數(shù)和流程控制器通過連線關(guān)聯(lián)在一個流程圖中,每個節(jié)點的輸出作為連線下一個節(jié)點的輸入。編排好的流程會按照流程圖中設(shè)定好的順序依次執(zhí)行,執(zhí)行成功后支持查看工作流的運行記錄,方便您輕松地診斷和調(diào)試。
函數(shù)流功能特性和優(yōu)勢:
功能特性
函數(shù)可視化編排
函數(shù)流執(zhí)行引擎
錯誤處理
可視化監(jiān)控
優(yōu)勢
使用更少代碼快速構(gòu)建應(yīng)用程序
函數(shù)流允許用戶將函數(shù)組合編排成一個完整的應(yīng)用程序,而無需進行代碼編寫??梢詫崿F(xiàn)快速構(gòu)建,快速上線。當業(yè)務(wù)調(diào)整時,可以快速調(diào)整流程,完成快速上線,無需編寫任何代碼。
完善的錯誤處理機制
支持對流程中發(fā)生的錯誤進行捕獲和重試,用戶可以進行靈活的異常處理。
可視化的編排和監(jiān)控體驗
通過拖拽進行流程編排,學(xué)習(xí)成本低,可以快速上手。
監(jiān)控頁面使用流程可視化的查看方式,可以做到快速識別問題位置。
統(tǒng)一插件開發(fā)和調(diào)試
CloudIDE支持(云上):
通過模板創(chuàng)建函數(shù),在云端查看函數(shù)并下載到云,使用IDE在線調(diào)試,將函數(shù)推送到云端。
VSCode插件支持(云下):
通過模板創(chuàng)建函數(shù),在云端查看函數(shù)并下載到本地調(diào)試,使用VSCode插件調(diào)試,將本地函數(shù)推送到云端。
HTTP函數(shù)
HTTP函數(shù)專注于優(yōu)化 Web 服務(wù)場景,用戶可以直接發(fā)送 HTTP 請求到 URL 觸發(fā)函數(shù)執(zhí)行。在函數(shù)創(chuàng)建編輯界面增加類型。HTTP函數(shù)只允許創(chuàng)建APIG/APIC的觸發(fā)器類型,其他觸發(fā)器不支持。
調(diào)用鏈
用戶通過頁面函數(shù)配置開啟調(diào)用鏈,開啟后可以鏈接到APM服務(wù)頁面查看jvm、調(diào)用鏈等信息,當前僅支持JAVA函數(shù)。
自定義鏡像
支持用戶直接打包上傳容器鏡像,由平臺加載并啟動運行,調(diào)用方式與HTTP函數(shù)類似。與原來上傳代碼方式相比,用戶可以使用自定義的代碼包,不僅靈活也簡化了用戶的遷移成本。
函數(shù)類型
事件函數(shù)
概述
FunctionGraph支持事件類型函數(shù)。事件是指用于觸發(fā)函數(shù),通常為JSON格式的請求。用戶作為事件源(事件的生產(chǎn)者),可以通過云服務(wù)平臺或Cloud IDE觸發(fā)函數(shù)并進行執(zhí)行。在函數(shù)創(chuàng)建界面可以選擇函數(shù)類型,事件類型的函數(shù)不受觸發(fā)器類型的限制,當前FunctionGraph支持的所有類型觸發(fā)器均可用于觸發(fā)事件函數(shù)。
說明:FunctionGraph原生支持事件類型函數(shù),在函數(shù)創(chuàng)建界面默認選擇該類型;
測試函數(shù)時在參數(shù)配置界面輸入用戶指定的事件JSON即可完成函數(shù)觸發(fā);
用戶也可以通過FunctionGraph支持的觸發(fā)器進行事件函數(shù)觸發(fā);
優(yōu)勢
單機編程體驗,簡單易用
事件類型函數(shù)可以在FunctionGraph函數(shù)界面或Cloud IDE界面進行函數(shù)編輯或代碼包上傳,一鍵式完成函數(shù)云上部署,用戶無需關(guān)心并處理函數(shù)的并發(fā)、故障恢復(fù)等問題。
高性能極速運行時
事件函數(shù)提供毫秒級函數(shù)啟動、函數(shù)擴容、函數(shù)調(diào)用,秒級故障中斷檢測及秒級故障恢復(fù)。
便捷完備的工具鏈
提供完備的日志、調(diào)用鏈、debug及監(jiān)控能力,支撐開發(fā)者“三步”上線函數(shù)應(yīng)用。
限制
事件函數(shù)受限于事件格式(事件源),開發(fā)者在開發(fā)過程中需要遵循函數(shù)平臺的函數(shù)開發(fā)規(guī)則。
HTTP函數(shù)
概述
FunctionGraph支持兩種函數(shù)類型,事件函數(shù)和HTTP函數(shù)。HTTP函數(shù)專注于優(yōu)化 Web 服務(wù)場景,用戶可以直接發(fā)送 HTTP 請求到 URL 觸發(fā)函數(shù)執(zhí)行,從而使用自己的Web服務(wù)。HTTP函數(shù)只允許創(chuàng)建APIG/APIC的觸發(fā)器類型,其他觸發(fā)器不支持。
說明:HTTP函數(shù)支持HTTP/1.1協(xié)議。
在函數(shù)創(chuàng)建頁面,新增一種函數(shù)類型“HTTP函數(shù)”;
HTTP函數(shù)執(zhí)行入口需要設(shè)置為bootstrap,用戶直接寫啟動命令,端口統(tǒng)一開放成8000;
若運行用戶JAR包,bootstrap中建議增加JVM參數(shù)-Dfile.encoding=utf-8,否則可能會出現(xiàn)中文亂碼。
優(yōu)勢
豐富的框架支持
您可以使用常見的 Web 框架(例如 Nodejs Web 框架:Express、Koa)編寫 Web 函數(shù),也可以將您本地的 Web 框架服務(wù)以極小的改造量快速遷移上云。
減少請求處理環(huán)節(jié)
函數(shù)可以直接接收并處理 HTTP 請求,API 網(wǎng)關(guān)不再需要做 json 格式轉(zhuǎn)換,減少請求處理環(huán)節(jié),提升 Web 服務(wù)性能。
編寫體驗舒適化
HTTP 函數(shù)的編寫體驗更貼近編寫原生 Web 服務(wù),可以使用 Node.js 原生接口,保證和本地開發(fā)服務(wù)體驗一致。
限制
HTTP函數(shù)只允許創(chuàng)建APIG共享版、APIG專享版、APIC的觸發(fā)器類型,其他觸發(fā)器不支持。
同一個函數(shù)支持綁定多個 API 觸發(fā)器,但所有 API 都必須在一個APIG服務(wù)下。
針對http函數(shù),用戶的http響應(yīng)體不超過6M。
不支持長時運行和異步調(diào)用,不支持重試。
函數(shù)工作流 FunctionGraph 常見問題
函數(shù)工作流 FunctionGraph 常見問題
函數(shù)工作流 FunctionGraph 精選推薦
1對1咨詢專屬顧問
華為云咨詢電話:950808或4000-955-988 轉(zhuǎn)1
華為云咨詢電話:950808或4000-955-988 轉(zhuǎn)1