专业网站设计速寻亿企邦,竞价推广账户托管,网站开发 打标签,长沙的网站建设.Net Core Serverless初体验什么是ServerlessServerless 是一个当今软件世界中比较新的话题。它并没有一个普遍公认的权威定义#xff0c;每个人每个企业对它的解释可能都有不同#xff0c;而 Serverless 正是在这种情况下不断发发展的。但是就算如此#xff0c;有一些 Serv… .Net Core Serverless初体验什么是Serverless Serverless 是一个当今软件世界中比较新的话题。它并没有一个普遍公认的权威定义每个人每个企业对它的解释可能都有不同而 Serverless 正是在这种情况下不断发发展的。但是就算如此有一些 Serverless 的特征还是被广泛认可的服务端的主机和进程完全由供应商管理可以根据负载进行自动伸缩按照精确的使用情况来计费就像水和电一样。效用计算 引用掘金原文地址https://juejin.im/post/5c68fdbfe51d4539a569f259Serverless演进 在这个发展历程中有以下几个渐进的里程碑事件通过虚拟化技术将大型物理机虚拟成单个的VM资源。将虚拟化集群搬到云计算平台上只做简单运维。把每一个VM按照运行空间最小化的原则切分成更细的Docker容器。基于Docker容器构建不用管理任何运行环境、仅需编写核心代码的Serverless架构。 引用阿里云原文地址https://help.aliyun.com/knowledge_detail/65565.html?spma2c4g.11186631.2.1.4f811bbeDYGmvp阿里云Serverless - 函数计算 函数计算是事件驱动的全托管计算服务。使用函数计算您无需采购与管理服务器等基础设施只需编写并上传代码。函数计算为您准备好计算资源弹性地可靠地运行任务并提供日志查询、性能监控和报警等功能。借助函数计算您可以快速构建任何类型的应用和服务并且只需为任务实际消耗的资源付费。 引用阿里云原文地址https://help.aliyun.com/document_detail/52895.html?spma2c4g.11186623.6.541.23dc641aB3U3K0编写.Net Core代码 1. 新建一个.net core控制台程序这里命名为AliyunServerless。 2. 引用阿里云提供的函数计算组件Aliyun.Serverless.CoreInstall-Package Aliyun.Serverless.Core 3. 按照函数计算的要求编写.Net Core的类与函数这里用两个类与函数 a. 打印执行日志/// summary/// 打印执行日志/// /summarypublic class LogHandler{public void Handle(Stream input, IFcContext context){ILogger logger context.Logger;logger.LogInformation($Handle request: {context.RequestId});}} b. 打印服务器IP/// summary/// 打印服务器IP/// /summarypublic 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});}}} 说明 详情可参考原文地址https://help.aliyun.com/document_detail/112379.html?spma2c4g.11174283.6.567.206852120XSx37 4. 发布程序并打包成zipdotnet publish -c Release 配置阿里云函数计算 1. 费用说明及免费额度 2. 选择函数执行的地区 参考入口地址https://fc.console.aliyun.com/fc/overview/cn-shenzhen 3. 创建服务及函数 a. 创建函数 b. 选择“事件函数”然后“下一步” c. 配置函数信息 其中 “所在服务”是分组根据需要填写即可。 “函数名称”是名称根据需要填写即可。 “运行环境”选择dotnetcore2.1。 “函数入口”要按规定填写模板是{程序集}::{命名空间}.{类名}::{函数名}这里是AliyunServerless::AliyunServerless.LogHandler::Handle “函数执行内存”函数执行需要的内存。 “超时时间”函数执行不能超过设置的时间。 d. 执行函数 点击“执行”可以看到执行摘要执行时间、使用内存、执行状态等及执行结果 e. 创建触发器 这里用的是“定时触发器”支持Cron表达式调度最高频率为1分钟暂不支持秒级调度除了“定时触发器”还有以下的触发器类型 有兴趣的朋友可以自行研究。 配完触发器以后函数就会被定时触发由于这里是打印日志需要配置日志才能看到本文没配置日志就不演示触发效果了。扩展测试 按照创建函数的步骤创建“打印服务器IP”函数执行并进行跟踪结果如下 1. 多次执行5次不同的RequestId服务器IP没变都为21.0.3.3说明分配到同一台服务器上 2. 重新上传程序包服务器IP会变但同一个软件包服务器IP不变 a. 第一次重新上传 b. 第二次重新上传 3. 我选择的执行地区是“华南1深圳”但是服务器IP是美国IP因为无服务器信息该结论仅供参考 4. 调用统计会非实时正常现象大部分业务月免费额度应该足够使用 源码地址 https://github.com/ErikXu/AliyunServerless