閱識風雲是華為雲信息大咖,擅長將複雜信息多元化呈現,其出品的一張圖(雲圖說)、深入淺出的博文(雲小課)或短視頻(雲視廳)總有一款能讓您快速上手華為雲。更多精彩內容請單擊此處。 摘要:本篇雲小課主要指導使用Springboot應用的用戶,快速部署業務到函數工作流FunctionGraph服務。 本文分 ...
閱識風雲是華為雲信息大咖,擅長將複雜信息多元化呈現,其出品的一張圖(雲圖說)、深入淺出的博文(雲小課)或短視頻(雲視廳)總有一款能讓您快速上手華為雲。更多精彩內容請單擊此處。

摘要:本篇雲小課主要指導使用Springboot應用的用戶,快速部署業務到函數工作流FunctionGraph服務。
本文分享自華為雲社區《雲小課|使用SpringBoot快速構建FunctionGraph HTTP函數】》,原文作者:閱識風雲

本篇雲小課將複雜的場景簡單化,帶你輕輕鬆松使用SpringBoot快速構建FunctionGraph HTTP函數。
操作流程
此處以http://Spring.io中的IntelliJ IDEA,Maven項目為例,使用HTTP函數的方式部署到FunctionGraph上。
構建代碼包
1、打開Springboot項目,在maven插件處單擊package,生成jar包。

2、配置工程web埠。HTTP函數當前支持8000埠,需配置工程web埠為 8000, 可以參見下圖使用application.properties文件來配置,也可以在啟動時指定埠號。

3、在jar包同目錄創建bootstrap文件並輸入啟動參數。
/opt/function/runtime/java11/rtsp/jre/bin/java -jar -Dfile.encoding=utf-8 /opt/function/code/rest-service-complete-0.0.1-SNAPSHOT.jar

4、選中jar包和bootstrap文件,打包成zip包。(下一步會派上用場哦)
創建HTTP函數並上傳代碼
1、在FunctionGraph控制台,創建HTTP函數。

2、上傳上一步中由jar包和bootstrap打包的zip包。

驗證結果
1、使用函數測試事件驗證
- 在函數詳情頁,單擊“配置測試事件”。
- 選擇事件模板“apig-event-template”,修改測試事件中的path、pathParameters參數,構建一個簡單的Get請求。

- 單擊“創建”,完成測試事件創建。
- 單擊“測試”,獲取響應。
建議在測試時增加函數記憶體規格及超時時間,如512MB、5s。

2、配置APIG觸發器測試
創建APIG觸發器,“安全認證”建議選擇“None”,方便調試。

複製生成的調用URL在瀏覽器進行訪問。如圖1-6所示,在URL後添加請求參數greeting?name=fg_user,響應如下。

溫馨提示:
預設生成的APIG觸發器的調用URL為“功能變數名稱/函數名”,在本案例中即:https://your_host.com/springboot_demo,URL中包含了函數名springboot_demo作為path的第一部分。如果直接Get https://your_host.com/springboot_demo/greeting,springboot接收到的請求地址將包含springboot_demo/greeting兩部分。此處需註意: 如果用戶直接把已有的工程上傳,會因為path里多了函數名而無法直接訪問自己的服務。因此,請參考以下兩種方法註解或去除函數名。
方法一:修改代碼中的Mapping地址,例如在GetMapping註解或者類註解上添加預設的path第一部分。

方法二:單擊觸發器名稱,跳轉至API網關服務,直接修改path去除函數名。
瞭解更多FunctionGraph服務信息,戳這裡