[英]AWS Lambda connection to external REDIS instance not working
我正在编写一个函数来连接REDISLABS上的REDIS实例。 我附加了一个API网关来调用此代码。 奇怪的是,虽然测试它来自API网关测试控制台,但它无法正常工作。 不幸的是,我无法在测试控制台上看到任何错误。
我已经将代码移动到本地机器作为普通的NodeJS代码,它没有任何问题。 我的代码看起来像这样:
exports.handler = async (event) => {
var client = require('redis').createClient({
host: 'redis-XXXXXXXX.c10.us-east-1-2.ec2.cloud.redislabs.com',
password: 'XXXXXXXXXXXXX',
port: '14021'
});
client.on('connect', () => {
return {
status: 200,
message: 'connected'
}
});
client.on('error', (error)=> {
return {
status: 404,
message: 'Something went wrong:'+ error
};
})
};
我配置了一个VPC,并且安全组的所有端口都启用了(用于测试)出站连接。
有人可以建议我哪里出错吗?
您试图从回调而不是从处理程序本身返回结果。 我不确定如何使用async
,但没有它你可以这样做:
exports.handler = (event, context, callback) => {
var client = require('redis').createClient({
host: 'redis-XXXXXXXX.c10.us-east-1-2.ec2.cloud.redislabs.com',
password: 'XXXXXXXXXXXXX',
port: '14021'
});
client.on('connect', () => {
callback(null, {
status: 200,
message: 'connected'
});
});
client.on('error', (error)=> {
callback(null, {
status: 404,
message: 'Something went wrong:'+ error
});
});
};
如果抛出异常,您可能应该添加更多错误处理,因此在这种情况下您不会得到空响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.