npm 包 @kalarrs/serverless-shared-api-gateway 使用教程

阅读时长 7 分钟读完

前言

在 Serverless 应用中,API Gateway 是非常重要的一部分。API Gateway 提供了连接 Serverless 函数的 HTTP/HTTPS 入口,API 管理,请求转发等功能。在使用 Serverless 时,您可能需要频繁地重复编写 API Gateway 的相关配置,这可能会造成大量的重复工作,同时也增加了错误和维护的成本。

为了解决这个问题,Kalarrs 开源了一个 npm 包 @kalarrs/serverless-shared-api-gateway,这个包提供了一个自定义资源类型,它将 API Gateway 的配置集中在一个地方,可供多个函数共享使用。本文将详细介绍该 npm 包的使用方法。

前置条件

在开始本教程之前,你需要已经安装并熟悉使用 Serverless Framework。

该 npm 包支持以下 Serverless Framework 中的 provider:

  • AWS
  • Aliyun
  • Tencent

同时,它也支持以下语言的 Serverless 项目:

  • Node.js
  • Python
  • Go
  • PHP
  • Java

安装

使用 npm 包管理器安装 @kalarrs/serverless-shared-api-gateway:

或者使用 yarn:

使用

使用 @kalarrs/serverless-shared-api-gateway 的步骤如下:

  1. 在您的 Serverless 项目目录下创建一个 resource 目录,用于存放 shared_apigateway.ymlserverless.yml
  1. resource/shared_apigateway.yml 文件中,编写 API Gateway 的配置。

下面是一个例子:

如上所示,这将创建一个名为 my-shared-apigateway 的 API Gateway,作为一个 CloudFormation 资源,可供多个函数共享使用。更多关于 AWS::Serverless::Api 的属性可以参考 AWS 文档

  1. resource/serverless.yml 文件中,以 Serverless Framework 的语法描述您的 Lambda 函数和其他 Serverless 资源,并将 SharedAPIGateway 引用到 Gateway 中。(如果您的函数没有使用 API Gateway,则无需这一步)
-- -------------------- ---- -------
- --------------

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

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

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

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

注意,我们将 SharedAPIGateway 输出为了 RestApiIdRootResourceId,这是为了方便其他函数的引用,可以在其他 Serverless 资源中使用该资源的引用。

  1. 在您的 Serverless 项目目录下,创建一些需要使用 API Gateway 的函数,并在它们的 YAML 文件中添加 SharedAPIGateway 的引用。
-- -------------------- ---- -------
- --------------

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

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

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

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

在函数的 YAML 文件中,我们使用了 restApiIdresourceId 字段引用了共享的 API Gateway 资源。

至此,您已经完成了对 @kalarrs/serverless-shared-api-gateway 的基本使用。您可以在多个函数中使用相同的 API Gateway 配置,从而节省了重复的工作和减少了维护的成本。

结语

本教程介绍了如何使用 @kalarrs/serverless-shared-api-gateway 包,它通过集中 API Gateway 的配置资源,不仅减少了重复工作,而且也减少了维护的成本。相信它能够使您的 Serverless 项目开发更加高效和简洁。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bc6967216659e244441

纠错
反馈