"Productionising" Lambda 和 API 网关

"Productionising" Lambda and API Gateway

我最近一直在自学如何使用 NodeJS + Express 构建 APIs。我仍然是一个新手,但当他们在我的开发环境中出色地工作时,我真的很兴奋。但是,我很难知道如何为生产环境配置我的服务器和代码库。那里有很多信息可以使用 Helmet 之类的东西并将 NGINX 作为代理放在前面,但在这个阶段,其中一些东西超出了我的范围。

所以我开始将 'serverless' 视为部署它们的可能选项,并将我的数据迁移到 AWS RDS PostgreSQL 并设置了一个采用查询参数并查询数据库的 Lambda 函数。我还设法配置了 AWS API 网关,它需要一个 API 密钥来触发 Lambda 函数。

我的 RDS 和 Lambda 功能仅限于 VPC,我使用的是 API 密钥,API 网关默认为 HTTPS。

因此,由于使用 "serverless" 消除了大多数传统生产挑战,因此我正在寻求有关我现在需要考虑的其他事项的任何建议或帮助。

这里还有一些其他需要考虑的事情:

  1. 使用阶段和阶段变量在应用程序中设置一个'pipeline'。在 API Gateway 中,阶段旨在代表此工作流程,因此您可以拥有测试阶段和生产阶段。你可以 use stage variables to set up the Lambda function endpoints in the same way.
  2. 如果您还没有使用 Usage Plans,这是通过 API 密钥监控使用情况并为每个 API 密钥设置速率限制和配额的好方法。
  3. API Gateway 和 Lambda 都发布 CloudWatch 指标和日志,因此您可以监控这些指标并在指标上设置警报。