如何在Redis中使用Autah / Password NodeJ连接AWS Lambda?

时间:2018-06-08 18:06:19

标签: node.js redis aws-lambda node-redis

嘿伙计们在AWS Api Gateway中为验证令牌制作lambda函数,但是我需要使用安全性连接redis,但是使用此配置会失败:

var client = require('redis').createClient({
      host : 'redis-dev.amazonaws.com',
      port : 6379,
      no_ready_check: true,
      auth_pass: 'mypassword#c$blx!Na'                                                                                                                                                    
});

错误:

{ "errorMessage": "2018-06-08T17:55:38.344Z 23a4f9da-6b45-11e8-abe5-6119b1378dff Task timed out after 5.01 seconds"}

任何可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

错误消息看起来像lambda正在子网/ vpc中运行,该子网没有对redis服务器的出站访问权限。 尝试使用2个选项中的一个来查找根本原因

1-尝试从本地计算机运行代码并检查是否可以连接到redis服务器。

2-删除lambda中的vpc设置以在vpc外执行lambda。

答案 1 :(得分:1)

正如其他人所说,VPC可能是个问题,但还有另外一个想法。

此超时是redis连接超时还是Lambda超时?因为,redis连接使nodejs循环忙。并且Lambda默认等待清理所有内容。

如果是,请尝试设置 context.callbackWaitsForEmtpyEventLoop = false在函数处理程序中。或者在回调之前杀死redis连接。

相关问题