2

我使用无服务器来创建使用nodejs模板的lambda函数。在本地测试Elasticache和无服务器AWS Lambda

  1. 连接到我的Elasticache的Redis我设置一个VPC,并添加了安全组和子网号,以及该地区的我拉姆达serverless.yml
  2. 我部署了它并确认我可以设置并从Redis获得密钥。

当我尝试serverless invoke local -f functionName时,它总是超时,所以我必须部署它来测试它。

是否可以在本地使用serverless进行测试?

回答

3

默认情况下,Elasticache无法直接从外部AWS环境访问。根据他们的documentation,该服务旨在专门从AWS内部访问。在你的情况下,serverless invoke local超时,因为连接本身无法建立,并且lambda函数超时。因此,您无法在本地运行调用以按照您尝试执行的方式来测试此连接。

要从本地计算机连接到Elasticache Redis,可以在公有子网中使用NAT实例,并设置安全组以打开正确的端口并启用IP转发以允许连接到您的redis缓存群集。步骤给出here

不过,我只想安装Redis的本地和使用环境变量来改变连接字符串的λ运行时,连接到本地机器上的实际Elasticache群集上本地Redis的。