npm 包 serverless-endpoint-configuration 使用教程

前言

在现代的 Web 开发中,后端服务的解耦和部署灵活性成为了一个重要问题。Serverless 架构的出现使得我们可以轻松地部署无状态的、轻量级的后端服务。AWS Lambda 和 API Gateway 组成的 Serverless 应用架构,成为了构建 Serverless 应用的标配。

Serverless 应用中的 API Gateway 起到了重要的角色,在使用 AWS API Gateway 时,开发者需要通过手动编写 CloudFormation 模板或通过 AWS 控制台创建 REST API,来为 Lambda 服务生成相应的入口。对于 API Gateway 的配置,早期的服务开发者,需要亲自理解 RESTful API 的设计,查阅 AWS 的 API Gateway 文档,繁琐费时,且容易出错。

本文就介绍了一个 NPM 包 Serverless Endpoint Configuration,即通过 YAML 配置自动化生成前端 API Gateway,并完成丰富的规则设置,例如速率限制、授权相关、缓存策略等常见服务配置,从而简化前期 API Gateway 的部署步骤。

功能介绍

此 NPM 依赖可以从配置自动生成 AWS API Gateway,包括生成 REST & WebSocket 的端点,同时还有以下核心功能:

  1. 支持对 不同端点的速率 限制的管理,并通过 控制域名访问策略 屏蔽非法访问。

  2. 支持 前端授权 调用 API,使用 AWS 的各项授权服务例如 API Key、 Amazon Cognito User Pools 以及 AWS Identity and Access Management(IAM)。

  3. 支持 在 API Gateway 中运用缓存策略 以提升服务响应速度。

安装

在使用 Serverless Endpoint Configuration 之前,需要确保已经安装了 Node.js,然后在命令行输入以下命令安装:

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

安装后,直接通过 require 引入:

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

使用步骤

下面我们就介绍一下如何使用 Serverless Endpoint Configuration。

第一步:创建简单YAML文件

在项目中,创建一个 config.yaml 的配置文件,这个文件包含了生成 API Gateway 的信息和 API Gateway 的方法以及参数,具体格式如下:

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

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

其中:

  • rest 是 REST API 的配置;
  • name 是 REST API 名称;
  • uri 是 REST API URI,即资源路径;
  • description 是 REST API 描述;
  • dataType 是 REST API 接收的数据类型;
  • response 是 REST API 返回结果的格式和数据,schemaFile 是以对应格式的 JSON 文件路径;
  • method 是 HTTP 请求方法,必须大写。

websocket 是 WebSocket 的配置;

  • group 是 WebSocket 的群组;
  • routes 是 WebSocket 的路由。

注意在 Serverless Endpoint Configuration 中,YAML 的接口名称与 HTTP 请求方法名是一一对应的。

例如,上述配置文件中,getpet 对应 GET 请求方式。

第二步:生成 API Gateway

在构建 Serverless 应用时,导入 YAML 配置文件即可使用生成 API Gateway。具体配置及生成 API Gateway 的相关代码如下:

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

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

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

上述代码使用 fs 模块读取 YAML 配置文件,并使用 YAML 模块解析 YAML 文件,解析后获得 yamlObject,此时console.log可以查看配置信息,输出示例如下:

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

接着,使用 serverless-endpoint-configurationgenerateEndpoints 方法生成 API Gateway。 此方法接受一个对象作为配置对象,调用时传递一个 JSON 序列化、自动转义的 YAML 对象即可,具体如下:

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

API Gateway 配置修改

Serverless-Endpoint-Configuration 包含了基础的 API Gateway 属性,但是也可以自定义需要的 API Gateway 属性。在 AWS 的控制台或者仪表盘上,可以直接修改并保存您的 API Gateway。

建议是修改以前需要备份相关说明,因为 REST API 和 WebSocket 群组和路由在 AWS 的控制台和仪表板上进行了修改,导致自动化更改响应方法无效。

总结

在开发 Serverless 应用时,自动化生成 API Gateway 的工具极大地降低了客户端的集成难度。Serverless-Endpoint-Configuration 能够自动配置许多 AWS API Gateway 属性,极大地减轻了 API Gateway 的开发负担。在实际的开发项目中,结合 AWS Lambda 就可实现极佳的性价比,免费或少量免费的使用,还能免去过多的转化时间。

至此,我们已经介绍了 Serverless Endpoint Configuration 的使用方法,同时也阐释了 Serverless 应用的优点和配置方法。希望本文内容能够帮助到 Serverless 开发爱好者们。

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


猜你喜欢

  • npm 包 egg-wxauth 使用教程

    在 Web 开发中,我们经常会需要实现微信登录功能。然而,微信登录涉及到许多繁琐的流程和验证,这给开发者带来了挑战。为了解决这个问题,有些开发者会采用第三方登录平台的解决方案。

    3 年前
  • npm 包 multiple-lcs 的使用教程

    前言 随着互联网的不断发展,前端技术也不断地更新迭代,npm 包作为前端项目开发中最重要的组成部分之一,为前端开发者带来了很多便利。在这篇文章中,我们将讲解 npm 包 multiple-lcs 的使...

    3 年前
  • npm 包 360grab 使用教程

    在前端开发中,经常需要处理图片相关的问题,诸如图片的压缩、裁剪等。而本文将为大家介绍一个非常实用的图片处理工具:360grab。本文将详细介绍 npm 包 360grab 的使用方法,并且会提供一些示...

    3 年前
  • npm 包 animated-ui 使用教程

    介绍 animated-ui 是一款基于 CSS 和 JavaScript 的动画库,该库提供了各种复杂深度的动画效果。除了能实现基于官方的动画库无法实现的效果之外,animated-ui 还提供了更...

    3 年前
  • npm 包 doimg 使用教程

    前言 在前端开发过程中,我们经常需要对图片进行处理,例如图片压缩、裁剪、生成缩略图等操作。这些操作可以借助一些工具来完成,而 doimg 就是其中一款非常实用的工具。

    3 年前
  • npm包ngcarousel使用教程

    什么是ngcarousel? ngcarousel是一个基于Angular框架的图片轮播组件,帮助开发者快速实现通过鼠标点击和滑动手势切换图片的功能。 安装和引入 在你的项目根目录下打开终端,输入以下...

    3 年前
  • npm 包 ngx-mobx 使用教程

    介绍 MobX 是一个简单、可扩展的状态管理库,而 ngx-mobx 则是一个适用于 Angular 项目的 MobX 封装库,提供了一种更加方便和简单的方式来管理 Angular 应用程序的状态。

    3 年前
  • npm 包 re-resizable-rotate使用教程

    在前端开发中,我们经常需要使用一些可调整大小的组件来进行UI设计。re-resizable-rotate是一个十分强大的可拖拽和可旋转的组件,可以让UI设计更加简单和灵活。

    3 年前
  • npm 包 react-native-truetime 使用教程

    在 React Native 开发中,时间戳是一个很重要的数据类型。然而,JavaScript 中的时间戳是本地时间,而不是正确的世界标准时间。为了在 React Native 应用中准确地获得时间戳...

    3 年前
  • npm 包 cross-storage-ext 使用教程

    在现代 web 应用程序中,跨站点通信已成为一个常见的需求。在实现时,程序员通常会面临跨域和安全性限制,并且需要在不同的站点共享数据。对于这个问题,Cross域存储解决方案为 JavaScript 应...

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

    概述 ax-js 是一个功能强大而又易于使用的 JavaScript 工具类库,它适用于各种前端开发项目。本文将向您介绍如何安装和使用 ax-js,并提供有深度的指导建议和示例代码。

    3 年前
  • npm 包 importpackagejson 使用教程

    简介 随着前端技术的不断发展,前端项目中所依赖的依赖包越来越多。npm 是前端最常用的包管理工具之一,而 importpackagejson 就是一个可以直接在项目中导入 package.json 文...

    3 年前
  • npm 包 parameter.js 使用教程

    在前端开发中,参数校验是必不可少的一项操作。如果我们能够减少手动检查和处理参数错误的时间和精力,就能更专注于业务逻辑和用户体验的开发。针对这个需求,我们可以使用 npm 包 parameter.js ...

    3 年前
  • npm 包 @wynk/react-native-swipe-cards 使用教程

    @wynk/react-native-swipe-cards 是一个基于 React Native 实现的轻量级轮播卡片组件库。该库可以通过简单的配置和定制来适应各种应用场景。

    3 年前
  • npm 包 mongoose-repository 使用教程

    前言 对于前端开发者来说,Node.js 和 MongoDB 都不是很陌生的技术。这两个技术的配合,可以让前端开发更加丰富。 本文将介绍一个 npm 包 mongoose-repository,这是一...

    3 年前
  • npm 包 `generator-seng` 使用教程

    generator-seng 是一个基础的前端开发生成器,旨在通过命令行帮助开发者快速构建基础的前端项目,并提供了丰富的模板和代码片段。 在本文中,我们将详细介绍如何使用 generator-seng...

    3 年前
  • npm 包 vantage-es6-contextified-repl 使用教程

    前言 vantage-es6-contextified-repl 是一个基于 vantage 实现的 ES6 语法环境的 REPL 工具,可以帮助前端开发者更方便地运行和调试 JavaScript 代...

    3 年前
  • npm 包 @boeleboom/open-color 使用教程

    1. 什么是 @boeleboom/open-color @boeleboom/open-color 是一种基于颜色的设计系统,它使用了开放式颜色库 Open Color,提供了一组现代、灵活的颜色,...

    3 年前
  • npm 包 editor-md 使用教程

    作为前端开发人员,我们经常需要编写技术博客、文档等内容。而在编写这些内容时,我们经常需要使用 markdown 语言来快速创建文本内容。为了能够更加方便地使用 markdown,我们可以使用一个名为 ...

    3 年前
  • npm 包 gitestpraveen 使用教程

    在前端开发中,我们经常需要使用一些依赖库来完成我们的任务,比如 jQuery、React 等。而 npm 就是一个包管理器,用来管理这些库。在 npm 中,有许多非常优秀的第三方库,比如 gitest...

    3 年前

相关推荐

    暂无文章