.Net Core Serverless初体验
什么是Serverless
Serverless 是一个当今软件世界中比较新的话题。它并没有一个普遍公认的权威定义,每个人每个企业对它的解释可能都有不同,而 Serverless 正是在这种情况下不断发发展的。但是就算如此,有一些 Serverless 的特征还是被广泛认可的:
- 服务端的主机和进程完全由供应商管理
- 可以根据负载进行自动伸缩
- 按照精确的使用情况来计费,就像水和电一样。(效用计算)
引用掘金,原文地址:https://juejin.im/post/5c68fdbfe51d4539a569f259
Serverless演进
在这个发展历程中有以下几个渐进的里程碑事件:
- 通过虚拟化技术将大型物理机虚拟成单个的VM资源。
- 将虚拟化集群搬到云计算平台上,只做简单运维。
- 把每一个VM按照运行空间最小化的原则切分成更细的Docker容器。
- 基于Docker容器构建不用管理任何运行环境、仅需编写核心代码的Serverless架构。
2. 引用阿里云提供的函数计算组件Aliyun.Serverless.Core
Install-Package Aliyun.Serverless.Core
3. 按照函数计算的要求编写.Net Core的类与函数,这里用两个类与函数
a. 打印执行日志
/// <summary> /// 打印执行日志 /// </summary> public class LogHandler { public void Handle(Stream input, IFcContext context) { ILogger logger = context.Logger; logger.LogInformation($"Handle request: {context.RequestId}"); } }
b. 打印服务器IP
/// <summary> /// 打印服务器IP /// </summary> public class IpHandler { public void Handle(Stream input, IFcContext context) { ILogger logger = context.Logger; var ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); logger.LogInformation($"Handle request: {context.RequestId}"); foreach (var ipAddress in ipHostInfo.AddressList) { logger.LogInformation($"IP Address:{ipAddress}"); } } }
说明:
配置阿里云函数计算