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 包 npm-nodejs 使用教程

    npm 是一个 Node.js 的包管理工具,允许用户从 npm 的仓库中安装和使用各种包或者模块,例如用来构建 Web 应用的 React、Vue 和 Angular 等框架,以及用来优化代码质量和...

    3 年前
  • npm 包 @ambassify/phonenumber 使用教程

    前言 在前端开发中,经常需要对电话号码进行验证或格式调整,而 @ambassify/phonenumber 就是一个兼容多种国家或地区电话号码格式的 npm 包,在实际开发中具有很高的实用性。

    3 年前
  • NPM 包 from-svn-to-yandex-disk 使用教程

    在前端开发中,包管理工具 NPM 已经成为了必须掌握的工具。NPM 提供各种各样的依赖包,使得开发人员可以更快、更简单地开发和部署应用和项目。 其中,from-svn-to-yandex-disk 就...

    3 年前
  • npm 包 spider-components 使用教程

    介绍 spider-components 是一个基于 React 的 UI 组件库,旨在帮助开发者快速构建高质量的前端界面。它包括了许多常用 UI 组件,如按钮、输入框、表格等。

    3 年前
  • npm 包 axe-crawler 使用教程

    Axe-crawler 是一个非常好用的前端自动化测试工具,它可以自动化分析您的网站,找出其中的可访问性问题,并生成详细的报告。本文将介绍如何使用 npm 包 axe-crawler 进行可访问性测试...

    3 年前
  • npm 包 common-words-bg 使用教程

    介绍 在前端开发中,我们会遇到一些需要对文本进行操作的场景,例如筛选出文章中出现最频繁的词汇,或者排除无意义的常用词汇等。而 common-words-bg 就是一个便捷的 npm 包,它能够帮助我们...

    3 年前
  • npm 包 lycwed-cordova-plugin-admob-maio 使用教程

    前言 在移动应用开发中,广告是一种常用的盈利手段。而在 Cordova 开发中,我们可以使用 lycwed-cordova-plugin-admob-maio 这个 npm 包来实现广告功能的集成。

    3 年前
  • npm 包 lego-supportor 使用教程

    简介 npm 是一款由 Node.js 实现的包管理器,可用于发布、发现、安装和管理 Node.js 模块。我们可以通过 npm 来实现快速下载各类前端库,在 web 开发中使用这些库能够提高我们的效...

    3 年前
  • npm 包 @andre_scalco/selector 使用教程

    前言 在前端开发中,选择器是一个非常重要的概念。使用正确的选择器可以让我们轻松地访问和操作 HTML、CSS 和 JavaScript 元素。@andre_scalco/selector 是一个基于类...

    3 年前
  • npm 包 lycwed-cordova-plugin-admob-mytarget 使用教程

    本文将介绍如何使用 lycwed-cordova-plugin-admob-mytarget 这个 npm 包在 Cordova 项目中添加 MyTarget 广告。

    3 年前
  • npm 包 @deli/crudl 使用教程

    前言 在开发过程中,我们经常需要对数据进行增删改查的操作。这样的操作可以自己手写,但是会很麻烦,容易出现错误。而 @deli/crudl 就是一个帮我们封装好这些操作的 npm 包,可以方便我们进行数...

    3 年前
  • npm 包 @zenclabs/deploy 使用教程

    在前端开发过程中,部署是一个非常重要的环节。而npm包 @zenclabs/deploy便是一个可以帮助我们简化部署流程的工具。本篇文章将介绍如何使用该npm包来完成前端部署的过程。

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

    前言 在开发前端项目时,经常需要使用到分页组件。而 vue-pagination-simple 就是一款简单易用、功能丰富的分页组件。本文将详细介绍如何使用 npm 包 vue-pagination-...

    3 年前
  • npm 包 gitbook-plugin-npmsearchlist 使用教程

    介绍 在前端开发中,我们经常需要使用到各种第三方的库与插件,而 npm 是前端开发中最常用的包管理工具之一,可以帮助我们方便地查找、安装、更新与移除我们所需的库与插件。

    3 年前
  • npm 包 fis3-packager-deps-pack2 使用教程

    前言 在前端开发中,我们经常需要使用打包工具来管理、构建和优化我们的代码。在使用 fis3 进行打包时需要依赖 fis3-packager 和 fis3-packager-deps-pack 来处理包...

    3 年前
  • npm 包 hyper-monokai-light 使用教程

    介绍 在前端领域,我们经常使用 hyper 这个终端来操作。它是一款非常好用的终端,可以通过安装主题来美化界面。其中,hyper-monokai-light 是一款非常棒的主题,本篇文章主要介绍如何使...

    3 年前
  • npm 包 atscntrb-hx-libhiredis 使用教程

    Node.js 是一款非常流行的 JavaScript 运行时环境,它能够让 JavaScript 在服务器端运行,因此它变得非常流行。而在 Node.js 中,npm 是最流行的包管理器,它能够让我...

    3 年前
  • npm 包 fis3-lint-flow 使用教程

    什么是 fis3-lint-flow? fis3-lint-flow 是一个流程型静态类型检查工具,在基于 JavaScript 的项目中使用流程型语言和类型定义。

    3 年前
  • npm 包 fis3-postpackager-inject 使用教程

    在前端开发中,构建工具的使用是必不可少的,但是每个构建工具都有其独特的特点和用法。fis3-postpackager-inject 是一个强大的构建工具,它可以在编译过程中,将指定的代码块或者文件注入...

    3 年前
  • npm 包 cri 使用教程

    在前端开发中,浏览器的自动化测试是必不可少的一部分。然而,通过手动操作浏览器进行测试是非常耗时和繁琐的。因此,我们需要一种自动化测试框架来简化这个过程,而「cri」正是这样一种框架。

    3 年前

相关推荐

    暂无文章