.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)。

上一篇:强化学习快餐教程(3) - 一条命令搞定atari游戏


下一篇:深入浅出: 大小端模式