如何部署 gRPC 程式到 Windows App Service

  • 94
  • 0

gRPC 是由 Google 推出來的一個資料傳輸的框架,是架構在 HTTP/2 的基礎上,去年 Azure 上的 App Service 可以支援這架構的程式,但是僅限於 Linux 的 App Service,就在這幾天的微軟開發者大會 Build 上終於發佈 Windows 的 App Service 也可以支援了,於是就來實做看看,並且記錄一下要注意的事項。

實做

程式範例就簡單的建立基本範本的 gRPC 專案。

不需要特別修改直接執行並且用 Postman 測試可以正常運作。

 接下來建立 App Service 的時候要注意要選擇 .NET 8 以及方案要選擇 Premium v3,不然會無法支援 gRPC。 

之後可以降為 Standard 定價層,但是如果直接建立 Standard 定價層有可能部署出來的還是舊的 Windows 版本,就會導致無法支援

接下來是最重要的部分,到 App Service 組態內調整設定,有三個必要的調整:

  1. HTTP 版本請選擇 2.0
  2. HTTP 2.0 Proxy 選擇開啟
  3. 端對端 TLS 加密選擇開啟 (沒有這選項的話代表前面建立的 App Service Plan 是錯誤的)

之後把程式部署上去之後測試,可以正確的得到回傳的結果了。

結論

原本因為 Windows 架構上的關係一直沒辦法支援 gRPC ,一開始只能在 Linux 版的 App Service,這次的更新終於可以支援了,雖然還在 Preview 階段,目前得先建立 Premium v3 定價層才可以使用,後續可以再改成 Standard 定價層,但是反過來可能會不行,如果不行的話需要檢查建立出來的 Windows 版本要是 Microsoft Windows NT 10.0.20348.0 或以上才是可以支援的版本。

也因為有開啟端對端 TLS 加密,所以也無法降到 Basic,所以目前最少需求會是 Standard 定價層才行。

參考資料