天天看點

.Net Core 2.1 MVC Web應用遷移到函數計算 custom runtime前言案例概覽總結

前言

Custom Runtime 就是自定義的執行環境, 使用者基于 Custom Runtime 可以完成以下目标:

  • 可以随心所欲持定制個性化語言執行環境(例如 golang、lua、ruby)以及各種語言的小版本(例如python3.7、Nodejs12)等,打造屬于自己的自定義runtime;
  • 現有的 web 應用或基于傳統開發 web 項目基本不用做任何改造,即可将項目一鍵遷移到函數計算平台。

案例概覽

在本教程中,我們講解如何利用函數計算 Custom Runtime 一步一步來建構 Web 的 Server 端,該案例是把一個 .Net Core 2.1 MVC 部署到函數計算中。本教程是基于mac系統進行的。

1. 建立.Net Core 2.1 MVC 應用

txd123deMacBook-Air:Dotnet txd123$ dotnet new mvc -n MyCMS           

2. 修改預設端口

在這個IWebHostBuilder中找到一個叫做UseUrls的方法,從注解中可以看得出來讓WebHost監聽指定的端口号,截圖如下:

.Net Core 2.1 MVC Web應用遷移到函數計算 custom runtime前言案例概覽總結

因為Custom Runtime 環境固定監聽的端口為:9000 ,是以你需要來指定一下該端口,改完之後截圖如下:

.Net Core 2.1 MVC Web應用遷移到函數計算 custom runtime前言案例概覽總結

3. 釋出.NET Core 應用程式

因為函數計算伺服器都是linux系統的,是以釋出程式的時候需要指定linux系統平台。

步驟如下:

1.生成依賴項,dotnet restore

2.生成項目,dotnet build

3.釋出項目,dotnet publish -r linux-x64 -c Release

4.在你釋出的目錄下(./bin/Release/netcoreapp2.1/linux-x64/publish/),找到和你應用程式名稱相同的二進制流檔案,改名為:bootstrap,然後賦予可執行權限。

.Net Core 2.1 MVC Web應用遷移到函數計算 custom runtime前言案例概覽總結

4. 在應用程式的根目錄下建立template.yml檔案

建立template.yml檔案使用fun工具部署,内容如下:

ROSTemplateFormatVersion: '2015-09-01'
Transform: 'Aliyun::Serverless-2018-04-03'
Resources:
  demo:
    Type: 'Aliyun::Serverless::Service'
    Properties:
      Description: 'helloworld'
    netcoreapp3:
      Type: 'Aliyun::Serverless::Function'
      Properties:
        Handler: index.handler
        Runtime: custom
        CodeUri: './bin/Release/netcoreapp2.1/linux-x64/publish/'
      Events:
        httpTrigger:
          Type: HTTP
          Properties:
            AuthType: ANONYMOUS
            Methods:
              - GET
              - POST
              - PUT  
               

需要根據你的業務需求增加相關配置。

Fun使用規範可以參考:

https://github.com/alibaba/funcraft/blob/master/docs/specs/2018-04-03-zh-cn.md?spm=a2c4g.11186623.2.20.4e7a28feMo3r1N&file=2018-04-03-zh-cn.md

注意:CodeUri執行你的編譯的釋出目錄下。

5. 使用fun工具部署

執行cd到應用程式的根目錄下執行:fun deploy,釋出成功如下:

.Net Core 2.1 MVC Web應用遷移到函數計算 custom runtime前言案例概覽總結

6. 配置自定義域名

配置自定義域名可以參考文檔:

https://help.aliyun.com/document_detail/90722.html
.Net Core 2.1 MVC Web應用遷移到函數計算 custom runtime前言案例概覽總結

最後你這邊就可以測試了!

.Net Core 2.1 MVC Web應用遷移到函數計算 custom runtime前言案例概覽總結

總結

函數計算有如下優勢:

  • 無需采購和管理伺服器等基礎設施
  • 專注業務邏輯的開發
  • 提供日志查詢、性能監控、報警等功能快速排查故障
  • 以事件驅動的方式觸發應用響應使用者請求
  • 毫秒級别彈性伸縮,快速實作底層擴容以應對峰值壓力
  • 按需付費。隻需為實際使用的計算資源付費,适合有明顯波峰波谷的使用者通路場景
  • 除了上面所列的優勢,FC 可以做為 Web Backend,隻需要編寫一個函數實作傳統 Web 伺服器中的 conf 中的邏輯,就可以将一個完整的 Web 工程遷移到 FC ,進而從傳統的 Web 網站運維,監控等繁瑣的事務中解放出來。

最後歡迎大家通過掃碼加入我們使用者群中,搭建過程中有問題或者有其他問題可以在群裡提出來。

函數計算官網客戶群(11721331)。