Serverless
Serverless 是一種雲端計算模型,它使開發人員能夠構建和執行應用程式,而無需關心底層的伺服器基礎設施。在傳統的應用程式開發中,開發人員需要管理伺服器的配置、擴充套件和維護等任務。而在 Serverless 模型中,這些任務都由雲服務提供商來處理,開發人員只需專注於編寫應用程式的業務邏輯。
Serverless 模型適用於許多應用場景,如 Web 應用程式、移動後端、資料處理和物聯網等。常見的 Serverless 平臺包括:
國外:AWS Lambda、Azure Functions 和 Google Cloud Functions等
國內:阿里雲的函式計算 FC,騰訊雲的雲函式等
本文以阿里雲的函式計算FC為例(阿里雲每個月有免費的額度)
Cloudflare
Cloudflare 是一家提供雲端計算和網路安全服務的公司。它提供了一系列的網路基礎設施和安全功能,幫助網站和應用程式提供更快的載入速度、增強的安全性和高可靠性。
Cloudflare 的核心服務包括:CDN(內容分發網路),DDOS 保護,Web 應用程式防火牆(WAF),DNS服務,TLS 加密和邊緣計算等。
本文需要使用到其中的DNS服務和TLS加密服務
應用準備
首先要準備好應用的部署檔案,雲服務廠商一般支援透過檔案上傳和容器映象的方式進行部署。
如果是檔案上傳的方式部署,還需要選擇執行環境,不同廠商支援的執行環境有所不同,需要提前瞭解好。
而映象的方式就比較簡單,只需要提供打包好的映象即可。
所以個人推薦使用映象的方式,這樣可以擁有對執行環境完整的控制權,也方便版本管理。
本文接下來也將以映象方式部署舉例,其中映象為已開源的一個微信聊天機器人專案
上傳映象到服務商平臺
一般情況下需要把映象檔案上傳到服務商平臺以後才能進行版本管理和部署,或者透過服務商平臺關聯原始碼進行映象打包,不同廠商可能有不同的策略,我這裡選擇的是在本地打包以後上傳到平臺的方式。
阿里雲需要先在【容器映象服務】裡面開通個人版,然後【建立映象倉庫】以後根據操作指南執行即可
上傳完以後可以點選左側的【映象版本】檢視映象版本列表
建立雲函式
阿里雲的雲函式是掛在服務下的,所以需要先建立服務,然後再建立函式。
建立函式的時候選擇【使用容器映象建立】,請求處理程式型別選擇【處理 HTTP 請求】,容器映象澤點選下面的【選擇 ACR 中的映象】找到選擇自己上傳的倉庫版本即可
後面還有【監聽埠】不要忘記配置,接下來就是一些資源和環境變數相關的配置,可以根據自己的需要選擇配置
最後是觸發器配置,特別是請求方法記得要把應用內所宣告過的型別都配上
最後點選【建立】即可完成函式的建立
驗證雲函式
雲函式建立成功以後,回到函式列表,點選函式名稱即可檢視詳情
切換到【測試函式】功能項,透過配置請求方式和路徑即可向函式發起請求,如果函式能夠如預期內響應,則表示函式已經部署成功
再切換到【觸發器管理(URL)】功能項,可以看到該函式已經擁有了一個外網可以訪問的域名,透過該域名也可以驗證函式部署是否成功,需要注意的是,該域名如果透過瀏覽器訪問,則所有返回內容都會透過下載的方式響應,這主要是因為國內提供網頁服務是需要備案的。
自定義域名
完成上面的步驟以後,你就得到了一個可以透過後臺提供服務的雲函式了,像我這個微信機器人專案就是一個純後臺專案,所以是可以直接使用雲函式提供的域名配置到微信公眾號後臺使用的。但是如果部署的是一個前臺服務,那就必須要配置一個自定義的域名才能正常使用,下面就分別介紹一下自定義域名的兩種情況。
使用阿里雲已經備案的域名
如果你已經有一個在阿里雲備案過的域名,那麼可以在【函式計算 FC】功能首頁找到【域名管理】功能
透過點選【新增自定義域名】,進入配置頁面
設定好自定義的域名並在域名解析控制檯配置好相應的CNAME
HTTPS需要購買證書,或者手動上傳(有的話可以選擇)
CDN加速是要單獨收費的,所以這裡選擇禁用
最後設定路由配置到部署好的服務函式即可
沒有已備案的域名
如果沒有在阿里雲已經備案的域名,則可以考慮把函式部署在海外服務節點,細心的讀者可能已經發現了,我就是用的這種方式,上面的服務函式其實是部署在新加坡的,透過海外的節點提供服務就不需要提供的域名是備案過的,新增步驟跟上面備案的域名是一樣的,只是在建立的時候少了域名備案校驗這一步
配置完成以後,可以透過自定義域名訪問驗證函式資源
CDN加速和HTTPS
前面我們在配置自定義域名的時候就發現CDN加速和HTTPS這兩個都被設計為單獨的收費專案了,但是我們可以使用Cloudflare免費使用這兩項功能。
登入Cloudflare,選擇【新增站點】,輸入自己的域名新增
計劃選擇最下面的Free
繼續按照步驟,登入到域名的服務商,把對應的DNS伺服器改為Cloudflare的DNS伺服器地址
還是以阿里云為例,在域名管理裡面的【DNS管理】->【DNS修改】介面選擇修改DNS伺服器,兩個都要改成Cloudflare的
完成以後在首頁能看到新增的域名為有效即為設定成功
點選域名進入配置頁面,選擇左側的【DNS】,把之前配置的雲函式的CNAME在這裡重新配置一遍
再點選左側的【SSL/TLS】,勾選【完全】
至此,再次透過自定義域名訪問驗證,能夠透過https訪問並正常顯示資源即表示成功
PS:Cloudflare自帶免費的CDN加速功能,還有其他免費的功能可以自行研究