【发布时间】:2019-09-17 13:43:52
【问题描述】:
我有一个在 node.js 8.10 上运行的 AWS Lambda 函数。此函数使用ioredis 库连接到Redis 服务器,获取键的值,然后返回该值。我可以在日志中看到连接成功,并且成功检索了该值。但是,响应永远不会返回,如果我查看日志,我可以看到 lambda 总是超时。
为什么这种情况不断发生?是否有某种原因导致 lambda 继续运行而不是从 Redis 返回值?
这是我的 lambda 函数中的代码:
const Redis = require('ioredis');
const redis = new Redis(6379, 'http://redis.example.com');
exports.handler = async (event, context) => {
const value = await redis.get('mykey');
console.log('value', value); // this shows up in Cloudwatch logs
return value;
};
【问题讨论】:
-
您的回复是否需要以某种方式格式化?
return { statusCode: 200, headers: { "Content-Type": "application/json" }, body: value }; -
好吧,如果我删除所有 Redis 内容并返回一个类似
'foo'的字符串,它就可以工作
标签: javascript amazon-web-services redis aws-lambda