C#语言由于需要编译后才可以在 CoreCLR 虚拟机中运行。因此在 SCF 中的使用方式,和 Python、Nodejs 这类脚本型语言不同,和Java一样有如下限制:
不支持上传代码:使用 C# 语言,仅支持上传已经开发完成,编译打包后的 zip 包。SCF 环境不提供 C# 的编译能力。
不支持在线编辑:不能上传代码,所以不支持在线编辑代码。CoreCLR 运行时的函数,在代码页面仅能看到再次通过页面上传或 COS 提交代码的方法。
自定义NET Custom runtime
Custom Runtime的封装工作就是要把各种trigger 的事件封装一个NET Standard库,开发云函数。自 NET Core 20 开始, 提供了名为 IHostedService 的新接口,有助于轻松实现托管服务,文章《ASPNET Core 3x控制IHostedService启动顺序浅探》有深入的实现分析,基于IHostedService 实现一个SCFHostService:
这里我们把SCF的Custom Runtime 抽象到ISCFHost 中
在SCFHost 类中完成Custom Runtime的业务处理,接收来自SCF 的事件,转发给函数进行处理,函数处理的接口 IFunctionInvoker:
默认实现了FunctionInvoker 把请求信息 返回给 SCF:
responseBody 代表了SCF函数的不同Trigger事件信息,我们可以根据不同的Trigger 定义不同的处理函数,例如我们处理>
上面我们已经完成了最小的MVP封装,利用NET Core的依赖注入容器封装起来,我们定义了一个ISCFBuilder 来组装函数的配置和服务:
SCF 云函数开发
我们使用NET Core的控制台程序来开发云函数,创建一个控制台程序, 引用YhdTencentCloudSCF 包,把Programcs 替换成类似代码:
using MicrosoftExtensionsConfiguration;
using MicrosoftExtensionsDependencyInjection;
using MicrosoftExtensionsHosting;
using MicrosoftExtensionsLogging;
using SystemThreadingTasks;
using YhdFindJob;
using YhdTencentCloudSCFExecutors;
public class Index
{
static async Task Main(string[] args)
{
var builder = new HostBuilder()
ConfigureSCF((context, scfbuilder) =>
{
var configuration = scfbuilderConfiguration;
scfbuilderServicesAddFindJob(configuration);
scfbuilderServicesAddEasyCaching(options =>
{
optionsUseInMemory();
//use redis cache that named redis
optionsUseRedis(configuration)
WithJson()
;
});
scfbuilderServicesAddTransient<IFunctionInvoker, Jobs>
var host = builderBuild();
using (host)
{
await hostRunAsync();
}
}
}
通过ConfigureSCF 可以添加函数的依赖服务,例如上面例子中的EasyCaching 以及函数的服务, 关键的一句是 scfbuilderServicesAddTransient<IFunctionInvoker, Jobs>
现在SCF 云函数有个问题是本地Windows开发问题,本地的函数逻辑的测试可以通过单元测试进行。还有函数打包必须在Linux环境下进行。
云函数部署
创建 bootstrap 文件
bootstrap 是运行时入口引导程序文件,Custom Runtime 加载函数时固定检索 bootstrap 同名文件,并执行该程序来启动 Custom Runtime 运行时。Custom Runtime 支持任意语言及版本开发运行函数,主要基于 bootstrap 引导程序由开发者自定义实现。其中,bootstrap 需具备以下条件:
需具有可执行权限。
能够在 SCF 系统环境(CentOS 76)中运行。
下面这个是 NET Core 31的云函数 bootstrap 文件
#!/bin/sh
echo "Start dotnet bootstrap ~~~"
export DOTNET_ROOT=/opt/rt
export PATH=$(pwd):/opt/rt:${PATH}
dotnet /index/bin/Release/netcoreapp31/indexdll
indexdll 就是我们开发的函数文件。
成功创建 bootstrap 和 函数文件 后,目录结构如下所示:
├ bootstrap
└ index
需要在Linux 下执行以下命令,设置文件可执行权限,并将其添加至 ZIP 包
部署包准备好后,可以通过 云函数控制台 来创建和发布函数
在腾讯云云函数计算上部署NET Core 31的更多相关文章
阿里云函数计算上部署NET Core 31
使用阿里云ECS或者其他常见的VPS服务部署应用的时候,需要手动配置环境,并且监测ECS的行为,做补丁之类的,搞得有点复杂好在很多云厂商(阿里云Azure等)提供了Serverless服务,借助于
IIS上部署NetCore
部署: 1安装vc_redistx64vc_redistx64 2安装DotNetCore100RC2-WindowsHosting 3安装DotNetCore100-SDK
So Easy - 在Linux服务器上部署 NET Core App
NET Core 是微软提供的免费跨平台和开源的开发框架,可以构建桌面应用程序移动端应用程序网络应用程序物联网应用程序和游戏应用程序等如果你是 Windows 平台下的 dotnet 开发
在IIS上部署 Net Core 30 项目踩坑实录
在IIS上部署 Net Core 30 项目的主要流程有: 安装并启用IIS 安装AspNetCoreModuleV2 添加配置网站 设置应用程序池 通过VS发布 一安装并启用IIS: 安装了
在CentOS 8 上 部署 Net Core 应用程序
在Centos 8 上 部署 Net Core 应用程序 -- 记录篇 1更新dnf 源 1 dnf update 2安装 AspNet Core 运行时 1 dnf install
在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)
之前做项目都是在本地跑,最近遇到需要在在云服务器(阿里云或者腾讯云都可以,差不多)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去之后写一下部署的步骤与过程,一是帮助自己总结记忆,
ASPNET Core学习之四 在CentOS上部署net core
一安装CentOs 以前在大学学过linux,但是对命令行总是有一种深深的排斥感,几年之后,还是又回来了 1下载 现在没法FQ,就算是FQ网速也是蜗牛一样慢,我使用阿里云的镜像站进行下载速度还是
netcore入门在Windows IIS上部署NET Core 21项目
部署之前先检查下面2个先决条件是否满足 1安装了 IIS 模块 win7 在 控制面板→程序和功能→打开或关闭Windows功能→勾选Internet 信息服务(Internet Informati
CentOS7系统上部署net core程序
一准备工作 首先安装 xshell 和 xftp ,前者用于SSH连接Linux服务器,后者用于FTP上传下载文件 xshell和xftp个人使用是免费的,下载地址 之后分别输入用户名和密码登录主
意思是调用成员函数print。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。
C语言能以简易的方式编译、处理低级存储器。
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。各所院校侧重点不同,所开设的课程也有所不同,但是,骨干核心课程很相近。
课程1、 物联网产业与技术导论 使用电子工业出版社《物联网:技术、应用、标准、安全与商业模式》等等教材。 在学完高等数学,物理,化学,通信原理,数字电路,计算机原理,程序设计原理等课程后开设本课程,全面了解物联网之RFID、M2M、传感网、两化融合等技术与应用。
课程2、C语言程序设计 使用清华大学出版社《C语言程序设计》等教材。 物联网涉及底层编程,C语言为必修课,同时需要了解OSGi,OPC,Silverlight等技术标准。
课程3、Java程序设计 ,使用 机械工业出版社《Java语言程序设计教程》等教材。 物联网应用层,服务器端集成技术,开放Java技术也是必修课,同时需要了解Eclipse,SWT, Flash,HTML5,SaaS等技术
课程4、无线传感网络概论,使用 无线龙通讯科技出版社《现代无线传感器网络概论》、北京航空航天大学出版社《短距离无线通讯入门与实战》等教材。 学习各种无线RF通讯技术与标准,Zigbee, 蓝牙,WiFi,GPRS,CDMA,3G, 4G, 5G等等。
课程5、 TCP/IP网络与协议 ,《TCP/IP网络与协议》,清华大学出版社,等教材。 TCP/IP以及OSI网络分层协议标准是所有有线和无线网络协议的基础,Socket编程技术也是基础技能,为必修课
课程6、嵌入式系统技, 《嵌入式系统技术教程》,人民邮电出版社等教材。 嵌入式系统是物联网感知层和通讯层重要技术,为必修课
课程7、传感器技术概论 , 《传感器技术》,中国计量出版社,等教材。 物联网专业学生需要对传感器技术与发展,尤其是在应用中如何选用有所了解,但不一定需要了解传感器的设计与生产,对相关的材料科学,生物技术等有深入了解
课程8、RFID技术概论 ,《射频识别(RFID)技术原理与应用》,机械工业出版社,等教材。 RFID作为物联网主要技术之一,需要了解,它本身(与智能卡技术融合)可以是一个细分专业或行业,也可以是研究生专业选题方向。
课程9、工业信息化及现场总线技术 ,《现场总线技术及应用教程》,机械工业出版社,等教材。 工业信息化也是物联网主要应用领域,需要了解,它本身也可以是一个细分专业或行业,也可作为研究生专业选题方向。
课程10、M2M技术概论, 《M2M: The Wireless Revolution》,TSTC Publishing,等教材。 本书是美国“Texas State Techinical College”推出的M2M专业教材,在美国首次提出了M2M专业教学大纲,M2M也是物联网主要领域,需要了解,建议直接用英文授课。课程11、物联网软件、标准、与中间件技术 ,《中间件技术原理与应用》,清华大学出版社,《物联网:技术、应用、标准、安全与商业模式》,电子工业出版社,等教材。 物联网产业发展的关键在于应用,软件是灵魂,中间件是产业化的基石,需要学习和了解,尤其是对毕业后有志于物联网技术发展的学生物联网是以计算机科学为基础,包括网络、电子、射频、感应、无线、人工智能、条码、云计算、自动化、嵌入式等技术为一体的综合性技术及应用,它要让孤立的物品(冰箱、汽车、设备、家具、货品等等)接入网络世界,让它们之间能相互交流、让我们可以通过软件系统 *** 纵himer、让himer鲜活起来。
就业方向只要有二个:
(1)面向物联网行业,从事物联网的通信架构、网络协议、信息安全等的设计、开发、管理与维护。
(2)主要面向岗位包括:物联网系统设计架构师、物联网系统管理员、网络应用系统管理员、物联网应用系统开发工程师等核心职业岗位以及物联网设备技术支持与营销等相关职业岗位。目前通信网络发展中就业前景看好。实现物联网理论教学的基础上结合实际环境监测应用进行体验式教学,激发学生学习兴趣。飞瑞敖根据实验箱提供的关于物联网环境监测的整体设计以及其设计原理图和接口函数以及二次开发包等资源下,构建一个物联网环境监测系统,通过实验平台所提供的WiFi网络,使用电脑、智能手机等终端设备实现远程观测环境多点参数。
该综合实验可以满足学校物联网技术/通信工程专业开设的物联网导论、传感器原理及应用、无线传感器网络及应用、物联网工程实验室及应用、物联网标准与中间件技术、物联网应用系统设计等课程。环境监测实验系统以光载无线交换机为核心,构建WiFi无线局域网,覆盖物联网实验室及其周边区域,加上实验室的有线网络交换机、网络路由器,有线网络、无线局域网的无缝覆盖整个系统。物联网套件哪个品牌好,达米科技,主要是感觉他的技术是比较靠谱的那种,就是一些深度数据分析能力呀,都还是挺强大的。我们研发现在在用,我就给你简单说一说吧。
SK3物联网开发板有以下几个特点:
1 从用料来看,SK3开发板采用的汽车级用料,企业是直接可以用来量产的,笔笔发有自己完整的供应链,可以帮助用户在三个月实现量产 ,降低用户的生产成本。(这是其他一些开发板,包括Arduino所不具备的)。
2 从传感种类来看,SK3物联网开发板拥有二十多种传感器,大多数行业需要的传感器SK3都支持,这个企业开发带来很大的方便。
3 从供电方式来看,SK3不仅支持5V直流供电,USB供电,还支持太阳能供电,这就解决了一些设备因电量不足导致死机或者重启的现象。SK3待机状态下功耗可以达到20uA左右,这在行业里面也是很少见的。
4 从数据传输方式来看,SK3开发板支持GPRS,有限以太网,WIFI,三种网络通讯方式,这在市面上是比较少见的。
5 SK3拥有独家的点对点的数据传输技术,并且用户是不用搭建服务器的,这个类似与给单片机上面加装了QQ一样,你可以快速实现数据的传输。点到服务器,数据传输稳定,这些都是可以减少我们的研发周期,节约成本。
6开放了SK3原理图,库函数,提供服务器端,手机端,PC程序,支持用户进行二次开发。大大节约产品的研发周期,三个月实现量产边可能。
他们每个月的出货量很多,产品的质量,性能都有很大的保证,适合做物联网开发。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)