npm 包 wd-serverless-offline 使用教程

介绍

wd-serverless-offline 是一个基于 Node.js 的 npm 包,它能够模拟 AWS Lambda 本地开发环境,支持本地离线调试和开发 Lambda 函数的能力。它使用了 serverless framework,可以让你在本地开发阶段模拟 API Gateway,自己的 Lambda 函数甚至其他 AWS 服务。

本篇文章将介绍如何使用 wd-serverless-offline,包括安装、初始化、使用以及相关指令。

安装

首先,我们需要将 wd-serverless-offline 这个 npm 包安装到本地项目中:

--- ------- ---------- ---------------------

由于我们只是需要在本地进行开发和测试,因此可以将其安装到 devDependencies 中。

初始化

接下来,我们需要为我们的项目初始化一个辅助文件夹,其中包含一些配置文件和用于本地模拟 API 的框架。我们可以通过 serverless framework 的 init 指令来完成初始化工作:

--- ---------- ------ ---------- ---------- ------ ----------

其中,my-service 是你想要给你的服务起的名字。

接下来,我们需要添加一个 plugins 配置项到 serverless.yml 文件中:

--------
 - ------------------

这将在项目中启用 wd-serverless-offline 插件。

使用

现在,我们可以在本地启动 serverless 应用,以验证程序是否能在本地运行。使用下面的指令:

--- ---------- -------

如果一切正常,你应该能看到类似于下面的输出:

----------- -------- -------- --------------

----------- ------ --- -----
----------- --- -
----------- ------- --------- -- ---------------------

现在,你就可以在本地服务器上测试和开发 Lambda 函数了。

添加 API Gateway

运行 serverless offline 指令后,wd-serverless-offline 会自动生成一个本地 API Gateway,可以通过以下 RESTful API 访问你的 Lambda 函数:

---------------------------------------------
  • stage: 设置 API Gateway 的阶段。
  • function_name: 要启动的 Lambda 函数名字。

离线调试 Lambda 函数

通过添加本地断点来启动 Node.js,wd-serverless-offline 可以让你在本地开始调试 Lambda 函数,这一点与在 AWS 上执行函数非常类似。要离线调试 Lambda,你需要使用 node inspect。指令的执行步骤如下:

  1. 打开一个命令行窗口,离线启动应用程序:

    --- ---------- -------
  2. 在另一个窗口打开一个 node 在 debug 模式下运行 Lambda 函数的实例:

    ---- -------------------------- -------------------------

    其中,serverless_handler.js 是你的 Lambda 函数的部署文件,它是 serverless framework 自动生成的。

  3. 在 node 结束调试会话之前,你可以通过浏览器访问 chrome://inspect 来查看正在运行的 Lambda 函数,并设置断点。

额外的指令

wd-serverless-offline 还提供了一些其他方便的指令,可以帮助你测试和模拟 AWS Lambda。

  1. 启动一个带有从命令行参数传递的变量的 Lambda:

    --- ---------- ------ ----- ---------- ----------- ------ ----------- --------

    这会模拟一次请求时传递给 Lambda 函数的事件,并在控制台中返回函数的响应。

  2. 启动一个有序的 Lambda 函数链:

    --- ---------- ------ ----- ---------- -------------- ------ ---------- --------- ------------

    这种设置的环境可以让你在本地执行更多的 AWS Lambda 开发,从而更好地测试和部署你的代码。

结论

wd-serverless-offline 使得在本地开发、测试、调试 AWS Lambda 函数变得更加简单。在使用它时,你可以编写更好、更强大的 Lambda 函数,并通过本地测试来验证你的功能。如果你正在为 AWS 开发 Lambda,在你的开发环境中使用 wd-serverless-offline 来获得更好的体验!

示例代码

以下是一个简单的 Lambda 函数示例,用 wd-serverless-offline 进行本地离线调试和测试。

目录结构:

-- -----------------
    --- --------------
    --- ----------

serverless.yml 文件:

-------- -----------------

----------------- -------- -------

---------
  ----- ---

----------
  ------
    -------- -------------

--------
  - ------------------

handler.js 文件(这是一个 Node.js 文件,以 exports 开头的 Lambda 函数定义):

------------- - ----- ------- -- -
  ----- ------- - ------ - - ---------------------------------
  ------ -
    ----------- ----
    ----- ----------------
      -------- --------
    ---
  --
--

运行状态如下:

- --- ---------- -------
----------- -------- -------- --------------

----------- ------ --- ------
----------- --- ------
----------- ------- --------- -- ---------------------

使用 cURL 测试:

- ---- ------------------------------------
- -------- ------ ---- -

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600573af81e8991b448e9ab0


猜你喜欢

  • npm 包 devapt-core-common 使用教程

    在前端开发过程中,我们不可避免地需要使用各种各样的工具,其中 npm 作为 Node.js 的包管理工具,是我们最常接触到的一种。而 devapt-core-common 是一款专注于提供前端组件所需...

    3 年前
  • npm 包 random-character 使用教程

    前言 在前端开发过程中,随机生成字符串或者数字是一个非常常见的需求。这时候,我们可以使用 npm 包 random-character 来实现这个功能,它提供了丰富的生成随机字符或数字的功能,如自定义...

    3 年前
  • npm 包 rockety-assets 使用教程

    在前端开发中,我们常常需要使用各种静态资源(如图片、字体、样式表等)。而 npm 包 rockety-assets 提供了一种方便地管理这些静态资源的方式。 什么是 rockety-assets ro...

    3 年前
  • npm 包 restify-oauth2-pure 使用教程

    在前端开发中,我们经常会涉及到 OAuth2.0 认证授权的问题。对于 Node.js 开发者来说,npm 上的 restify-oauth2-pure 包提供了一种快捷的解决方案。

    3 年前
  • npm 包 calculator 使用教程

    在前端开发过程中,我们经常需要进行各种数学计算。这时候,一个好用的计算器就显得尤为重要。而 npm 包 calculator 就是一款非常方便实用的计算器工具,可以轻松地完成数学计算。

    3 年前
  • npm 包 multidimensional-proxy-addressing 使用教程

    在前端开发中,我们经常需要处理引用复杂嵌套对象的问题。此时,我们可以使用 npm 包 multidimensional-proxy-addressing 来轻松处理这些问题。

    3 年前
  • NPM 包 React-FNS-DOM-Elements 使用教程

    在现代 web 开发中,React 是一个非常流行的框架,它提供了一种声明式的方式来构建用户界面。但是,有时我们需要直接操作 DOM 元素,这时候就可以使用 React-FNS-DOM-Element...

    3 年前
  • npm 包 bulkapi 使用教程

    bulkapi 是一款适用于前端开发的 npm 包,它可以帮助开发者更方便地批量提交 API 请求。如果你需要在前端中进行大量 API 请求,使用 bulkapi 可以大幅提升开发效率。

    3 年前
  • npm 包 gulp-extract-ar 使用教程

    在前端开发中,自动化构建是一项非常重要的任务。gulp 是一个非常流行的自动化构建工具,它有着众多的插件可以让我们更加高效地完成任务。其中,gulp-extract-ar 是一个非常有用的插件,它可以...

    3 年前
  • npm 包 noobgl-vector 使用教程

    简介 noobgl-vector 是一款基于 TypeScript 开发的简单的 3D 向量库。它提供了一些基本的向量运算,如加、减、点积、叉积等。noobgl-vector 旨在为开发者提供一种简单...

    3 年前
  • npm 包 system-disk 使用教程

    在前端开发中,我们经常需要获取系统磁盘信息,这时候我们可以使用系统磁盘 npm 包。但是,该 npm 包的使用方法并不是很简单,需要注意的细节也不少。本文将详细介绍如何安装和使用 system-dis...

    3 年前
  • npm 包 form-errors 使用教程

    在前端开发中,表单验证是一个必不可少的部分。而 form-errors 是一个能够方便处理表单验证错误信息的 npm 包,本文将介绍如何使用这个 npm 包来简化表单验证错误信息的处理。

    3 年前
  • npm 包 json-briefing 使用教程

    介绍 json-briefing 是一个 npm 包,能够将 JSON 对象转换为可读性更好的文本格式。这个模块能够将 JSON 对象转换为 Markdown 或者 HTML 格式,方便我们将数据在网...

    3 年前
  • AngularFire2-Offline 使用教程

    AngularFire2-Offline 是一款基于 Firebase 实时数据库的 Angular 应用程序开发工具包,它允许我们使用 Angular 来构建具有离线功能的实时应用程序。

    3 年前
  • npm 包 kick-start 使用教程

    Kick-start 是一个前端开发工具,可以快速启动和构建项目,它是基于 npm 包构建的,可以使用它轻松地构建和维护项目。 安装 kick-start 在使用 kick-start 之前,需要先安...

    3 年前
  • npm 包 mixin-interface-api 使用教程

    在前端开发中,我们常常需要为不同的组件添加相同的接口。这些接口通常是状态管理、路由控制或事件绑定等。为了避免重复代码的编写,我们可以使用 Mixin 技术。 本文将介绍一种名为 mixin-inter...

    3 年前
  • npm 包 vue-maze 使用教程

    前言 随着前端技术的发展,越来越多的工具和框架涌现而出,这些工具和框架给我们的开发带来了极大的便利。其中,npm 生态系统是最为著名和最为重要的一部分,它提供了海量的包和模块,为前端开发者提供了丰富的...

    3 年前
  • npm 包 bitcoinjs-lib-dash 使用教程

    前言 比特币(Bitcoin)是数字货币的代名词,它是使用去中心化的区块链技术实现的。Dash(简称DASH)是比特币的一种分叉币,也是一种数字货币。与比特币相比,Dash 更加注重用户的隐私保护。

    3 年前
  • npm 包 happyhxcs 使用教程

    介绍 npm 包 happyhxcs 是一款简单易用的前端日期时间选择器插件。它支持自定义主题、多语言、时间范围限制等功能,适用于中国大陆、香港、澳门、台湾以及国外的多个国家和地区。

    3 年前
  • npm 包 namjo-js-lib 使用教程

    介绍 namjo-js-lib 是一款前端 JavaScript 工具库,其提供了丰富的常用 JavaScript 函数和常量。包含了常见的字符串操作,数组操作,日期处理以及其他很多常用的工具函数。

    3 年前

相关推荐

    暂无文章