我使用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。
有任何想法吗?
但是如果我将Lambda函数放在VPC中,那么API Gateway就不能通过代理集成来访问Lambda函数。
这是不正确的。 API网关通过使用Lambda服务API,代理与否,VPC调用Lambda函数来访问它们。
API网关不直接连接到Lambda函数容器 - 因此容器放置(在VPC内部或外部)不会影响API网关实际调用该函数的能力 - 它会影响函数可以访问的内容,但不会影响它如何访问被访问。
代理集成修改了有效负载的行为和处理,但不是API网关实际连接到Lambda服务以调用函数和接收响应的方式。