我正在尝试使用无服务器框架(v 0.5.6)从 Lambda 函数访问 AWS Elasticache 集群,而不会失去对 Dynamodb 的访问权限。我试过使用这个 Gist 没有运气。在 Lambda 函数内部,我做的第一件事是连接到 Redis 实例,但我不断收到超时,我已经仔细检查了 CloudFormation 输出变量及其在函数内的可见性以及 VPC 的 Lambda 角色/策略,但仍然没有......我没有没有找到任何关于如何使用 CloudFormation 和无服务器创建 VPC 和安全组的指南,以便按照 here 的建议创建公共(public)和私有(private)子网、NAT 和 Internet 网关。任何人都可以帮忙吗?

最佳答案

您必须将 Lambda 函数放置在 ElastiCache 集群所在的 VPC 中。当然,一旦您这样做了,Lambda 函数只能访问 VPC 中存在的资源,因此它将无法再访问 DynamoDB。解决方案是向 VPC 添加 NAT 网关,这将允许 Lambda 函数访问 VPC 之外的资源。

我认为设置 VPC 和 NAT 网关不属于无服务器框架,但我不是该框架的专家。我建议考虑通过 AWS 控制台手动配置或通过 CloudFormation 之类的方法进行配置,然后只需在无服务器框架配置中指定它需要使用的 VPC。

关于amazon-web-services - 使用无服务器框架将 Lambda 连接到 Elasticache,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39854690/

10-15 14:43