前言
首先介紹下在本文出現的幾個比較重要的概念:
函式計算(Function Compute): 函式計算是一個事件驅動的服務,通過函式計算,使用者無需管理伺服器等執行情況,只需編寫程式碼並上傳。函式計算準備計算資源,並以彈性伸縮的方式執行使用者程式碼,而使用者只需根據實際程式碼執行所消耗的資源進行付費。
Fun: Fun 是一個用於支援 Serverless 應用部署的工具,能幫助您便捷地管理函式計算、API 閘道器、日誌服務等資源。它通過一個資源配置檔案(template.yml),協助您進行開發、構建、部署操作。
ROS: 阿里雲資源編排服務(ROS)助您簡化雲端計算資源的管理。您可以遵循ROS定義的模板規範,在模板中定義所需雲端計算資源的集合及資源間依賴關係。ROS自動完成所有資源的建立和配置,實現自動化部署和運維。
備註: 本文介紹的技巧需要 Fun 版本大於等於 3.0.8。
環境準備
首先按照 Fun 的安裝文件裡介紹的方法將 Fun 安裝到本機。
安裝完成後,可以執行 fun --version 檢查 Fun 是否安裝成功。
快速部署
1.初始化專案
通過 fun init 可以進行專案的初始化:
fun init -n SpringBootDemo
執行完畢,會在當前目錄多出來一個名為 SpringBootDemo 的目錄。
執行效果如下:
2. 本地編譯
通過 fun build 可以對專案進行編譯構建:
fun build
執行效果如下:
3. 本地執行
備註:如果不需要本地執行,可以跳過這步
通過 fun local start 可以在本地執行函式。
執行以下命令:
fun local start demo-springboot
可以看到效果:
4. 本地單步除錯
備註:如果不需要本地單步除錯,可以跳過這步
通過 fun local start 也可以在本地單步除錯函式。
無論是 VSCode,還是 IDEA,均已提供函式計算執行、除錯的支援,可以分別參考 VSCode 外掛 serverless-vscode,以及 IDEA 外掛 Cloud Toolkit。
考慮到讀者受眾,這裡我們不借助外掛進行除錯,更詳除錯細節請參考:https://yq.aliyun.com/articles/683683
操作效果如下:
5. 打包部署
接下來,我們使用 fun deploy --use-ros 的方式通過 ROS 進行部署:
fun package --oss-bucket fun-local-testfun deploy --use-ros --stack-name staging
其中,這裡的 --oss-bucket 名稱為自己所擁有讀寫許可權的 oss 的 Bucket 名稱。
--stack-name 表示要部署的環境,可以基於該名稱的不同,建立多套開發環境,比如 test、staging、prod。
我們下面演示如何快速建立一個 staging 環境,執行效果如下: