如何正确连接 AWS API 网关 -> Lambda -> DAX -> DynamoDB?

How to properly connect AWS API gateway -> Lambda -> DAX -> DynamoDB?

我使用 CloudFormation 模板使一切工作得非常好,该模板创建了一个 API 网关,该网关具有与 Lambda 函数的代理集成,进而操纵各种 DynamoDB 表。

不过最近,我开始体会到 DynamoDB 的缺点,它是 read/write 工人。所以,我想,我将启用 DynamoDB DAX 以通过其缓存加快速度。

我在获取 CloudFormation 模板设置以构建 DAX 集群时没有遇到任何问题。

但是,当我尝试从 Lambda 函数连接到 DAX 时,出现 NoRouteException: not able to resolve address 之类的错误。找了一圈,原来DAX在VPC里,Lambda函数当然访问不了。 Lambda 函数也必须在 VPC 中。

但是如果我将 Lambda 函数放在 VPC 中,那么 API 网关可能无法通过代理集成访问 Lambda 函数。

那么,如何在 VPC 内编排 API 网关 -> Lambda -> DAX?

常见的 API 网关 -> Lambda 模式无法轻易使用 DAX,这似乎很奇怪。 VPC 要求是一个真正的杀手,它确实意味着 DAX 主要只对 EC2 实例有用,与 API -> Lambda 相比。

有什么想法吗?

But if I put the Lambda functions in the VPC, then API Gateway cannot presumably access the Lambda functions via proxy integration.

这是不正确的。 API 网关通过使用 Lambda 服务 API 调用它们来访问 Lambda 函数,代理与否,VPC 与否。

API 网关不直接连接到 Lambda 函数容器——因此容器放置(在 VPC 内部或外部)不会影响 API 网关实际调用函数的能力—— - 它影响函数可以访问的内容,但不影响访问的方式。

代理集成修改了负载的行为和处理方式,但未修改 API 网关实际连接到 Lambda 服务以调用函数和接收响应的方式。