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

Cla*_*dgz 2 amazon-web-services node.js amazon-elasticache aws-lambda serverless-framework

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

  1. 要连接到我的Elasticache Redis,我设置了一个VPC,并将安全组和子网ID以及该区域添加到了我的lambda中serverless.yml
  2. 我部署了它并确认可以设置并从Redis获取密钥。

当我尝试时serverless invoke local -f functionName,它总是超时,因此我必须部署它进行测试。

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

use*_*510 6

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

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

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