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

时间:2017-12-21 01:46:08

标签: amazon-dynamodb aws-lambda aws-api-gateway amazon-dynamodb-dax

我使用CloudFormation模板完成了所有工作,该模板创建了一个API网关,其中包含与Lambda函数的代理集成,后者又操纵各种DynamoDB表。

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

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

但是当我尝试从Lambda函数连接到DAX时,我遇到了诸如NoRouteException: not able to resolve address之类的错误。搜索周围,事实证明,由于DAX在VPC中,Lambda函数当然无法访问。 Lambda函数也必须在VPC中。

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

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

通用API网关无法轻易使用DAX似乎很迂回 - > Lambda模式。 VPC要求是一个真正的杀手,它实际上意味着DAX主要仅对EC2实例有用,而不是API - > LAMBDA。

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

  

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

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

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

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