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

pjb*_*pjb 6 amazon-dynamodb aws-lambda aws-api-gateway amazon-dynamodb-dax

我使用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网关 - > Lambda - > DAX?

似乎循环,DAX不能轻易被公共API网关 - > Lambda模式使用.VPC要求是一个真正的杀手,它实际上意味着DAX主要仅对EC2实例有用,而不是API - > Lambda.

有任何想法吗?

Mic*_*bot 6

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

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

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

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

  • 谢谢,这很有帮助。必须在VPC中设置Lambda(以及随后的ENI管理)以使用DAX仍然令人沮丧。AWS认为这只是常规DynamoDB访问的“替代”替代品,因此增加了巨大的额外复杂性。 (2认同)