面向云端的编程范式,Serverless Devs 组件开发介绍 #62
anycodes
started this conversation in
Show and tell
Replies: 2 comments
-
ncc 工具不透出给开发者,存在路径依赖跟源码不一致的坑, 后面需要用ncc 可以针对部分需要极致体验优化的组件去搞 |
Beta Was this translation helpful? Give feedback.
0 replies
-
如果有下述提示信息 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
开篇
4月26号 阿里云Serverless 线下meet up顺利举行。会上我们的产品江昱同学给大家介绍了新版 Serverless Devs(以下简称S) 的功能规范,包括增加多源管理,更精简的指令集,更科学的配置规范以及对多个框架的支持,也有同学提出了在可编程,IaC(基础设施即代码)方面的问题,以Aws Sam作为参考,询问S工具是否也具备这样的能力。答案是肯定的,但受分享时间的限制,当时没有做更详细的介绍,本篇文章则会详细的对S的组件开发进行展开介绍。
概念说明
首先说一下S组件这个概念,S工具包含了,核心指令解析器,解析规范,应用以及组件,其中组件是S里面的一等公民,是功能逻辑的核心实现,S解析器内置解析规规则,配合应用的解析配置文件s.yaml,来为具体的组件装配入参,安排执行顺序以及展现实执行结果等。
当然组件也可以无配置的执行,例如可以通过
直接执行,具体是配置式的还是直接命令是的执行方式要看组件开发者自身的设定。
官方目前大部分开发框架类的组件都是需要配合配置文件编排,也就是我们的应用来实现,你在应用市场上看到的以start开头的应用正是此类。除此之外一些功能性的组件比如函数计算api组件fc-api,以及用来注册官方账号,向官方发布组件的platform都是可以直接通过s cli完成,一般情况下,可以通过s cli -d查看其使用文档,复制其中的执行指令可以直接进行功能操作
开发基础
S的组件基于typescript语言开发,对于前端群体可以直接上手,组件符合标准的npm包规范,在解析器里面是通过CommonJS 规范引入并进行实例化和方法调用,官方模版提供了日志,文档,国际化等基本能力,基于官方组件模版你可以快速构建一个标准S组件加以使用。
详细介绍
下面通过图文方式为大家详细介绍组件的制作调试及发布流程。
请先安装好 s 工作最新版本
初始化
选中 Component,输入名称完成初始化
整个目录结构如下
依赖安装及启动
项目启动后会先根据源码注释生成doc 文档目录,然后会启动对ts 源码的编译监听,你会看到有lib和doc 两个目录生成
调试
进入example 目录下输入s 指令,发现新增 自定义指令 component-test
执行
会输入组件执行的文档
执行
s component-test test
我们再增加一个函数helloWorld,编译文档(注意在组件根目录下执行npm run doc)后再执行
可以看到执行效果,新的函数已经加入文档
发布
前置条件,需要注册Serverless devs 官方账号 ,可以通过
获得,注册后可以以直接使用账号进行应用/组件发布,在组件根目录下执行
测试发布组件
方法1 :
进入example 目录,修改 component 为当前发布的组件名称
并在该目录下执行
可以看到有download 组件的过程,并且成功提示,说明已经可以被使用
方法2:
无配置执行,任意目录
结尾
通过以上介绍相信你也可以快速构建属于自己的S组件,并通过我们的Serverless Hub分享给更多的伙伴使用。
在这里附上我之前开发的 static-stie静态站点托管组件 源码,希望能够进一步加深对组件开发的理解
回到题目,S组件具备超强扩展能力和非常灵活的编程方式,这里为什么说开发S组件是面向云端的编程范式呢?这是因为我们S的整体定位是给云原生的Serverless生态服务,是把端和云做紧密关联的平台。
我们相信未来每一个开发者都会跟云保持密切关系,利用云的弹性和无限计算能力开发生产,当前
各个云商也都会让自己Api化,把自身的资源开放出去,让大家像使用水电煤一样使用云资源。这里面的问题是,除了少部分专业做云服务集成的软件服务商和从事相关方面的个人开发者,大部分开发者仅仅是需要使用云的能力而并不想为此还要单独做非业务层面的开发工作。S工具就是为了抹平这个Gap,希望成为云,专门做云服务集成的开发者以及云服务使用者三者的连接器。云服务开发者利用云的开放能力进行代码开发,构建一系列的业务应用场景,放到S Hub 共享,而云服务者使用不必再为管理云端资产花费更多精力,利用S Hub现成的应用组件,可以更专注的将工作重心放到业务能力提升上。除此之外 S本身还具备无厂商锁定的能力,意味着开发者可以做更复杂的多云管理操作。在未来企业将大部分会启用混合云,这种背景下S 的开发价值会变的越来越高。
最后非常期待更多的小伙伴加入我们,贡献组件甚至是核心解析器的代码。
附注
我们坚信未来前端 面向的Serverless 开发会成为一种主流,比如 前后端一体化,Jamstack 站点, 函数Api 等
Serverless Devs 的目的是加速这一切的到来,让广大的开发者享受Serverless 的技术红利,现在官方社区本身也是需要更多的人参与建设,我们希望有更多的人参与进来把他一起做大。
加入的条件
享受到的好处
Beta Was this translation helpful? Give feedback.
All reactions