npm 包 @wmakeev/lambda-node-standard-http-response 使用教程

阅读时长 5 分钟读完

前言

AWS Lambda 在 JavaScript 语言中运行的时候不能直接返回 HTTP 响应,这常常会成为前端技术开发中的一大瓶颈。为了解决这个问题,需要用到外部依赖。

@wmakeev/lambda-node-standard-http-response 是一款专门为 AWS Lambda 设计的 Node.js 包,能够以标准的 HTTP 响应返回格式将请求结果传递到 HTTP API 网关。

本篇文章主要介绍如何使用 @wmakeev/lambda-node-standard-http-response

安装

在命令行运行以下命令即可安装 @wmakeev/lambda-node-standard-http-response:

基本用法

在您的 Lambda 函数中,您需要声明以下的处理函数。

这里,我们在 Lambda 函数中使用 StandardHttpLambdaResponse class 来解决响应问题。该类提供了一组明确的 API 用来声明消息和状态,以确保 Lambda 函数装配结果时,HTTP 响应(或HTTP代理请求)能够被正确解析。最终我们利用类方法 getResponse , 将处理结果返回到API网关。

方法

setHeaders

通过传递一个 header 对象,可以设置 HTTP 响应头。代码如下:

setStatusCode

使用 HTTP 状态代码规定返回值状态。代码如下:

setBody

设置 HTTP 响应体的内容。注意,setBody 只接收一个参数,您需要在构建结果或调用的时候将其转换成 JSON 格式的文本。代码如下:

getResponse

返回 Standard HTTP Lambda Response 格式的处理结果,以便 AWS Lambda 可以将响应传递回 HTTP API 网关。

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

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

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

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

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

示例

以下是简单的示例:

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

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

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

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

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

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

这个示例将设置 HTTP 响应中允许的 Headers,设置返回代码为 200 并设置 HTTP 响应体内容。

尝试运行这个 Lambda 函数,并在请求中得到 HTTP 响应:

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

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

结论

这里文章记录了如何给 Lambda 返回 HTTP 响应。我们使用了 @wmakeev/lambda-node-standard-http-response 这个 npm 包,这个包能够以标准的 HTTP 响应返回格式将请求结果传递到 HTTP API 网关。

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

纠错
反馈