AWS Lambda 与 Elasticache 的连接超时

AWS Lambda connection timeout to Elasticache

我正在尝试让无服务器与 Elasticache 一起工作。我基于 serverless-examples/serverless-infrastructure repo 编写了一个自定义 CloudFormation 文件。我设法将 Elasticache 和 Lambda 放在一个子网中(使用 cli 检查)。我从输出中检索主机和端口,但每当我尝试连接 node-redis 时,连接都会超时。以下是相关部分:

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

我也 运行 关注这个问题,但是 Python。对我来说,有几个问题需要解决

  • lambda 需要 VPC permissions
  • ElastiCache 安全组需要来自 Lambda 安全组的入站规则,以允许在 Redis 端口上进行通信。我以为他们可以在同一个安全组中。
  • 真正的问题是:我打开了加密 in-transit。这意味着我需要通过 redis.RedisClient(... ssl=True)redis-py 页面提到需要将 ssl_cert_reqs 设置为 None 才能与 ElastiCache 一起使用,但在我的案例中似乎并非如此。但是我确实需要通过 ssl=True.

需要设置 ssl=True 是有道理的,但连接只是超时,所以我四处寻找,试图找出 permissions/VPC/SG 设置的问题所在。