使用无服务器框架将 Lambda 连接到 Elasticache

Car*_*nos 5 amazon-web-services redis aws-lambda serverless-framework

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

Mar*_*k B 5

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

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