AWS Lambda连接超时到Elasticache

cls*_*stl 9 amazon-web-services amazon-elasticache aws-lambda serverless-framework

我试图让无服务器与Elasticache一起工作.我写了一个基于无服务器示例/无服务器基础设施仓库的自定义CloudFormation文件.我设法将Elasticache和Lambda放在一个子网中(使用cli检查).我从输出中检索主机和端口,但每当我尝试连接node-redis时,连接超时.以下是相关部分:

feu*_*177 6

我也遇到了这个问题,但使用 Python。对我来说,有一些问题需要解决

  • lambda 需要VPC 权限
  • ElastiCache 安全组需要来自 Lambda 安全组的入站规则,以允许在 Redis 端口上进行通信。我认为他们可能只是在同一个安全组中。
  • 真正的问题是:我打开了传输中的加密。这意味着我需要通过redis.RedisClient(... ssl=True). 在Redis的-PY页提到,ssl_cert_reqs需要被设置为None与ElastiCache使用,但似乎并没有在我的情况是真实的。但是我确实需要通过ssl=True

ssl=True需要设置是有道理的,但连接只是超时,所以我四处寻找权限/VPC/SG 设置的问题是什么。


cls*_*stl 0

正如 Tolbahady 指出的,唯一的解决方案是在 VPC 内创建 NAT。

  • Lambda 连接到 ElasticCache 不需要 NAT 网关,只需要调用互联网或 AWS 服务端点(除非您为所述服务使用 vpc 网关或端点)。 (5认同)