是否可以从等式中删除 API Gateway 以通过公共互联网为 Lambda 提供服务?

use*_*413 4 amazon-web-services amazon-cloudfront aws-lambda

目前,我的应用程序驻留在 lambda 中,我使用 HTTP API (API Gateway V2) 提供服务。此设置存在于多个区域。这意味着,API Gateway 在同一区域中调用 lambda,从而访问同一区域中的 DynamoDB 全局表。我使用 Route 53 为距离用户最近的 API 网关提供服务。

我遇到的问题:API Gateway不支持从http到https的重定向。我可以通过 CloudFront 实现这一目标。但是,这会增加成本和延迟。

我可以从等式中删除 API Gateway 并使用 Lambda@Edge 访问用户附近的 DynamoDB 表吗?CloudFront可以替代API Gateway吗?

Mar*_*cin 5

是的你可以。文档写道

由源请求和响应事件触发的函数以及由查看器请求和响应事件触发的函数可以对 Internet 上的资源以及 Amazon S3 存储桶、DynamoDB表或 Amazon EC2 实例等 AWS 服务进行网络调用。

然而,与常规 lambda 相比,lambda@edge 的功能有很多限制。例子有:

  • 只有Python和NodeJS,
  • 调试困难,因为 lambda 日志在运行时将位于区域中,而不是位于一个中心区域中,
  • 调用 DynamoDb 的超时限制(5 或 30 秒),具体取决于其来源或查看器功能,
  • 无 lambda 层
  • 用于查看器端功能的最大内存为 128 MB
  • 对于查看器端功能,部署包大小最大可为 1 MB

因此,如果您可以解决 lambda@edge 的这些限制和其他限制,那么您就可以使用它来使用 DynamoDb。