简介
在 Serverless 架构下,使用 Serverless Framework 可以方便地搭建和管理自己的服务。而 generator-serverless-boilerplate 是一个非常实用的 npm 包,可以根据自己的需求生成一个完整的 Serverless Framework 项目结构,大大加快了项目的搭建流程。
本文将详细介绍如何使用 generator-serverless-boilerplate 生成 Serverless Framework 项目并做一些基本配置。
安装
首先,我们需要确保本地安装了 npm,然后通过以下命令安装 generator-serverless-boilerplate:
npm install -g yo generator-serverless-boilerplate
安装完成后,我们可以通过以下命令来验证安装是否成功:
yo serverless-boilerplate --help
如果成功,我们将会看到一系列的生成命令。
使用
生成完整的 Serverless Framework 项目结构的命令如下:
yo serverless-boilerplate my-project
其中,my-project
是我们将要生成项目的名称,可以自定义。
执行该命令后,generator-serverless-boilerplate 会在当前目录下创建一个 my-project
文件夹,并自动为我们生成一些基本的目录结构和文件,如下:
-- -------------------- ---- ------- ----------- --- ------------ --- --------- --- -------------- --- ------- --- ---- - --- ---------- - --- ---- - --- ------------ - --- ------ --- ----- --- ------------ --- -----
其中:
package.json
包含项目的依赖库以及命令脚本。README.md
是项目的说明文件。serverless.yml
是项目的 Serverless Framework 配置文件。env.yml
包含项目的环境变量。src/
包含项目的所有源代码,放置函数、中间件、工具类等。test/
包含项目的所有测试代码。
接下来,我们将介绍如何对这些文件进行配置。
配置 serverless.yml
serverless.yml
是 Serverless Framework 项目的核心配置文件,所有的 Serverless 资源的创建、服务的配置都会在这个文件中定义。
我们可以在 serverless.yml
文件中定义一些基本的配置,例如:
-- -------------------- ---- ------- -------- ---------- --------- ----- --- -------- ---------- ------- --------- ---------- ------ -------- ---------------------------
上述配置的意思是,我们创建了一个名为 my-project
的 Serverless 服务,运行在 AWS 的 nodejs14.x 服务器上,代码将会在 src/functions/hello.handler
这个文件中定义。
配置 env.yml
env.yml
是项目的环境变量配置文件。我们可以将一些常量或者配置信息写在这里,这些信息将在代码中使用。
例如:
-- -------------------- ---- ------- ---- ---- --- ---- --- ---- ---- --- ---- --- ----- ---- --- ---- ---
上述配置意味着,我们将 FOO 和 BAZ 的值分配给 dev、stg 和 prod 三种环境下。可以在代码中使用 process.env.FOO
和 process.env.BAZ
来获取对应的值。
配置 functions
src/functions
文件夹下存放所有的函数代码,我们可以在这个文件夹下创建一个新的函数,例如:
-- -------------------- ---- ------- -------------------- - ----- ------- -- - ----- -------- - - ----------- ---- ----- ---------------- -------- ------ -------- ------ ------ --- -- ------ --------- --
这个函数将会返回 Hello world!
字符串和接收到的 event
参数。
测试
使用 generator-serverless-boilerplate 生成的项目结构已经包含了用于单元测试和集成测试的文件夹。
在 test/unit
中,我们可以添加一些单元测试,用于测试项目中的单个函数或者某个模块的特定功能。
例如,我们可以添加以下测试用例:
-- -------------------- ---- ------- ----- - ------ - - ---------------- ----- - ----- - - ------------------------------------- --------------- ---------- -- -- - ---------- ------ ------ --------- ----- -- -- - ----- ----- - --- ----- -------- - ----- ------------- ------------------------------------------ --------------------------------------------------------- --------- --- ---
在 test/integration
中,我们可以编写集成测试,用于测试项目的所有组件以及环节。
例如,我们可以添加以下测试用例:
-- -------------------- ---- ------- ----- - ------ - - ---------------- ----- - ----- - - ------------------------------------- --------------------- ------- -- -- - ---------- ------ ------ ------- ---- ----- ---------- ----- -- -- - ----- ----- - --- ----- -------- - ----- ------------- ------------------------------------------ --------------------------------------------------------- --------- --- ---
发布
最后,我们可以通过以下命令将我们生成的 Serverless 项目部署到 AWS 上:
sls deploy
上述命令将会编译、打包并部署我们的 Serverless 服务到 AWS 上。
结论
通过使用 generator-serverless-boilerplate 可以快速生成一个完整的 Serverless Framework 项目结构,熟练使用 Serverless Framework 可以极大地提高项目的开发效率。希望本文可以对初学者提供一些帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005671181e8991b448e3584