6

我使用 CloudFormation 模板让一切工作得非常好,该模板创建了一个 API 网关,其中包含与 Lambda 函数的代理集成,而后者又可以操作各种 DynamoDB 表。

不过,最近我开始体验到 DynamoDB 的缺点,它是读/写工作者。所以,我想,我将启用 DynamoDB DAX 来加速其缓存。

我在设置 CloudFormation 模板来构建 DAX 集群时没有问题。

但是,当我尝试从 Lambda 函数连接到 DAX 时,我收到了诸如NoRouteException: not able to resolve address. 搜了一圈,原来DAX在VPC里面,Lambda函数当然不能访问。Lambda 函数也必须在 VPC 中。

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

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

常见的 API Gateway -> Lambda 模式无法轻松使用 DAX,这似乎很奇怪。VPC 要求是一个真正的杀手,这实际上意味着 DAX 主要只对 EC2 实例有用,而不是 API -> Lambda。

有任何想法吗?

4

1 回答 1

7

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

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

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

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

于 2017-12-21T14:10:46.203 回答