在前端开发中,使用云服务已经变得越来越普遍,而 Serverless 是一个目前很受欢迎的云服务框架。而 @serverless/core
是一个用 JavaScript 编写的 Serverless Framework 核心库,它提供了一种通过编程的方式定义 Serverless 应用程序的能力。
在本篇文章中,我们将深入探讨 @serverless/core
的使用方法,并梳理其使用的底层原理。
安装
首先,我们需要在我们的项目中安装 @serverless/core
包。可以通过 npm 指令来安装:
npm install @serverless/core
也可以使用 yarn 指令:
yarn add @serverless/core
基本用法
@serverless/core
包的主要作用是将代码包装为可以在 Serverless 环境中运行的形式,以测试、部署或重新部署为目的。而它提供的 API 主要有以下几个:
deploy
:将应用程序部署到 Serverless Platform。remove
:从 Serverless 平台中删除应用程序。build
:将代码构建为部署所需的形式。run
:在本地运行 Serverless 应用程序。logs
:查看 Serverless 应用程序的日志。info
:获取有关 Serverless 应用程序的信息。
构建应用程序
构建 Serverless 应用程序的第一步是编写构造函数(constructor),这是一个入口函数,用于描述你所需要的环境、配置和功能等。例如,以下是一个 hello-world
应用程序的构造函数:
-- -------------------- ---- ------- ----- - --------- - - --------------------------- ----- ---------- ------- --------- - ----- -------------- - --- - ----------------------- -------- - - -------------- - ----------
构造函数位于 default()
方法中。当应用程序被部署时,该方法将被调用。在此构造函数中,我们仅打印一条信息,即 “Hello World!”。
接下来,创建一个 serverless.yml
等配置文件,并添加以下内容:
component: HelloWorld inputs: region: us-west-2 runtime: nodejs14.x
此配置文件定义了要使用的组件及其所需参数。此处我们定义了一个组件 HelloWorld
并指定了运行环境以及所在的 region
。
现在,用 @serverless/core
库构建应用程序:
-- -------------------- ---- ------- ----- - ----- - - --------------------------- ----- ---- - --------------- ----- --------- - ------------------------ ---------------- ----- -------- - ------------------------ ---------- ----- ------- -------------- ---------- ---------- -------- --
这将导致 build()
方法把我们的应用程序打包为可部署到 Serverless 上的文件,并将构建文件保存在指定的目录中。
部署应用程序
我们使用 deploy()
方法将此应用程序部署到 Serverless 平台:
-- -------------------- ---- ------- ----- - ------ - - --------------------------- ----- ---- - --------------- ----- --------- - ------------------------ ---------------- ----- -------- - ------------------------ ---------- ----- --- - ----- -------- ---------- ------------- ----- --------------------- ------- - ------- ------------ -------- ------------ -- -------- -- ----------------
上面的例子使用 deploy()
方法,向云服务提供商提供构建应用程序所需的“部署文件”,以便开始部署应用程序。该方法返回一个应用程序对象,其中包含有关部署应用程序的信息。
示例代码
以下是一个完整的 @serverless/core
的示例。
-- -------------------- ---- ------- ----- - --------- - - --------------------------- ----- ---- - --------------- ----- ---------- ------- --------- - ----- -------------- - --- - ----------------------- -------- - - ----- -------- ---------------- - ----- --------- - ------------------------ ---------------- ----- -------- - ------------------------ ---------- ----- ------- -------------- ---------- ---------- -------- -- - ----- -------- ----------------- - ----- --------- - ------------------------ ---------------- ----- -------- - ------------------------ ---------- ----- --- - ----- -------- ---------- ------------- ----- --------------------- ------- - ------- ------------ -------- ------------ -- -------- -- ---------------- - ----- -------- ----------------- - ----- --------- - ------------------------ ---------------- ----- -------- - ------------------------ ---------- ----- --- - ----- -------- ---------- ------------- ----- --------------------- -------- -- ---------------- - ----- -------- -------------- - ----- --------- - ------------------------ ---------------- ----- -------- - ------------------------ ---------- ----- --- - ----- ----- ---------- ------------- ----- --------------------- ------- - ------- ------------ -------- ------------ -- -------- -- ---------------- - ----- -------- --------------- - ----- --------- - ------------------------ ---------------- ----- -------- - ------------------------ ---------- ----- --- - ----- ------ ---------- ------------- ----- --------------------- -------- -- ---------------- - -------------- - - ---------------- ---------------- ------------- -------------- -------------- -
其中,buildComponent()
使用 build()
方法构建应用程序;deployComponent()
使用 deploy()
方法部署应用程序;removeComponent()
使用 remove()
方法从 Serverless 平台中删除部署的应用程序;runComponent()
使用 run()
方法在本地运行应用程序;最后,infoComponent()
使用 info()
方法获取有关应用程序的信息。
结论
在这篇文章中,我们学习了如何使用 @serverless/core
包来构建并部署 Serverless 应用程序。我们还介绍了许多 API 和 CLI 命令,以便在使用该包时更加了解其原理和用法。希望本篇文章对于初次接触 Serverless 开发的前端开发人员们具有指导意义。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f1b6b77403f2923b035c4ce