在本地测试Elasticache和无服务器AWS Lambda

时间:2017-05-09 13:52:40

标签: node.js amazon-web-services aws-lambda amazon-elasticache serverless-framework

我正在使用无服务器来使用nodejs模板创建lambda函数。

  1. 要连接到我的Elasticache Redis,我设置了一个VPC,并将安全组和子网ID以及区域添加到我的lambda serverless.yml
  2. 我部署了它并确认我可以设置并从Redis获取密钥。
  3. 当我尝试serverless invoke local -f functionName时,它总是超时,所以我必须部署它来测试它。

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

1 个答案:

答案 0 :(得分:5)

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

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

但是,我只是在本地安装redis并使用环境变量来更改连接字符串以连接到本地计算机上的本地redis和在lambda上运行时的实际Elasticache集群。