Serverless 架构是现代 Web 开发的新趋势,AWS API Gateway 是在 AWS Lambda 上部署 API 的一种方法。 Serverless Framework 可以轻松地封装 Lambda 和 API Gateway 并提供无服务器架构的强大能力。 serverless-aws-api-gateway-utils 是一种 npm 包,它提供了一些有用的函数来帮助在 Serverless Framework 中创建和管理 API Gateway, 本篇文章将介绍如何正确地使用该 npm 包的方法。
安装
安装 serverless-aws-api-gateway-utils
可以通过 npm 命令完成:
npm install serverless-aws-api-gateway-utils --save-dev
使用
Api Gateway 对授权和认证有很高的安全要求,所以开发者必须充分了解所有方面的内容。此 npm 包中提供的工具是很有帮助的。
createDeployment
使用 createDeployment
函数可以轻松地创建一个新的 API Gateway 部署。 createDeployment
函数需要一个 AWS SDK 的 APIGateway 类的实例以及一个 stageName 作为参数。 下面是一个示例:
const AWS = require('aws-sdk'); const apiGateway = new AWS.APIGateway(); const createDeployment = require('serverless-aws-api-gateway-utils').createDeployment; createDeployment(apiGateway, 'dev') .then(console.log) .catch(console.error);
createDeployment
方法返回一个 promise ,成功时返回新部署的信息,失败时返回错误。 在使用此函数之前,必须先创建一个新的 API Gateway 部署。
createResource
创建一个新的 API 资源通常涉及到多个步骤。使用 createResource
函数可以大大简化这个过程,并且您可以在同一时间内创建多个子资源和方法。createResource
函数需要 AWS SDK 的 APIGateway 类的实例、一个 Rest API ID、一个父资源 ID 和要创建的资源对象作为参数。 下面是一个示例:
-- -------------------- ---- ------- ----- --- - ------------------- ----- ---------- - --- ----------------- ----- -------------- - ----------------------------------------------------------- ----- --------- - ------ ----- ---------------- - ------ ----- -------------- - - --------- ------------- -- -------------------------- ---------- ----------------- --------------- ------------------ ----------------------
createResource
方法返回一个 promise,成功时返回新资源的信息,失败时返回错误。
createMethod
使用 createMethod
函数可以轻松地为新资源创建一个新的 HTTP 方法。 createMethod
函数需要 AWS SDK 的 APIGateway 类的实例、一个 Rest API ID、要添加方法的资源 ID,HTTP 方法和 Lambda ARN 作为参数。 下面是一个示例:
-- -------------------- ---- ------- ----- --- - ------------------- ----- ---------- - --- ----------------- ----- ------------ - --------------------------------------------------------- ----- --------- - ------ ----- ---------- - ------ ----- ------ - ------- ----- --------- - ------ ------------------------ ---------- ----------- ------- ---------- ------------------ ----------------------
使用 createMethod
后,您还需要为您的 API 部署更新。您可以使用上面提到的 createDeployment
函数来完成此操作。
createAuthorizer
使用 createAuthorizer
函数可以创建一个新的 API Gateway 的授权程序。 createAuthorizer
函数需要一个 AWS SDK 的 APIGateway 类的实例以及要添加的授权数据。授权对象应该如下所示:
{ "type": "TOKEN", "name": "MyCustomAuth", "identitySource": "method.request.header.Authorization", "providerARNs": [ "xxx" ] }
授权对象包含应该由 API Gateway 使用的授权类型和授权程序的名称和其他详细信息。 下面是一个示例:
-- -------------------- ---- ------- ----- --- - ------------------- ----- ---------- - --- ----------------- ----- ---------------- - ------------------------------------------------------------- ----- ---------- - - ----- -------- ----- --------------- --------------- -------------------------------------- ------------- - ----- -- -- ---------------------------- ----------- ------------------ ----------------------
createAuthorizer
方法返回一个 promise,成功时返回新授权程序的信息,失败时返回错误。
结论
使用 serverless-aws-api-gateway-utils 这个 npm 包,您可以轻松地创建和管理 API Gateway,大大减少了在创建 API Gateway 时所需的工作。此外,它还提供了有助于提高 API Gateway 安全性的授权和认证工具。如果您正在使用 Serverless Framework 框架,并且需要帮助管理 API Gateway,请尝试使用该 npm 包吧!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005671d81e8991b448e37a7