关于 Serverless Devs Plugin机制的讨论 #432
anycodes
started this conversation in
Show and tell
Replies: 2 comments 1 reply
-
综上所述:需要提供的内容包括:
|
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
-
在 Serverless Devs 项目开始之初,我们确定了 Serverless Devs 的 Package 有三种形式:
所谓的应用,指的就是一个 Serverless 项目,一般可以用一个 Yaml + Code 表示一个应用;而所谓的组件,则是应用操作过程中所需要的一些能力支持;我经常把这个比喻成游戏机和游戏卡:
Serverless Devs Cli就是一台游戏机,而各种游戏/功能,被放在不同的游戏卡中,通过插入不同的游戏卡,可以玩不同的游戏,所以一个应用可以通过插入不同的组件,实现不同的功能。例如某应用的描述如下:
在这个应用中可以看到有三个模块,分别是:
整个应用,通过四个部分组成,部署了前后端业务,API网关资源以及相关静态资源的处理。
但是在实际应用过程中,我们发现,单纯的组件 + 无状态的钩子,没办法满足用户们日益增长的需求,那么我们最初的插件逻辑,就逐渐的“提上”来了:
插件:一种在Actions中表现的,对上下文进行处理的能力,在上面的应用中,我们不难发现:
在express-blog中,有一个actions,actions表示的是在该模块执行前后的一些自定义操作,例如:
pre-***
: 在执行***
前的操作post-***
:在执行***
后的操作那么插件是什么?
如上所示,在Actions中,有一个
pre-deploy
,内容是:表示的是在执行deploy命令之前,在目录
./express-blog
下面,进行npm run build
操作,除了这种单纯“钩子”行为,Serverless Devs还将会支持一种Plugin的模式,与这种钩子行为不同的是:npm install
等命令,实际上就是一个shell
指令;inputs
信息传入给该plugin,完成之后,会讲该plugin
的返回作用给下一个状态;整个逻辑是这样的:
所以,可以认为,Plugin机制是有状态传递的,常见的应用如下:
解决当前常见的那些问题?
s deploy -t *** -a ***
,此时外面的内容不回传给s nas upload,导致行为表现不一致;plugin的使用方法:
deploy后,项目的执行逻辑:
./express-blog
下执行npm run build
Beta Was this translation helpful? Give feedback.
All reactions