【发布时间】:2019-05-31 15:03:57
【问题描述】:
我在 NodeJs 中编写了一个 AWS lambda 函数,该函数从数据库中提取 id 并将它们排队到 AWS SQS 队列中。我让它工作正常,直到我部署了一个接收消息的函数,现在原来的函数不起作用。以下是相关代码:
async function sendHelper(rows)
{
let i;
let params;
let res;
let sqs = new AWS.SQS({apiVersion: '2012-11-05'});
for (i = 0; i < rows.length; i++) {
params = {
MessageBody: rows[i].ID.toString(),
QueueUrl: 'https://sqs.' + process.env.AWS_REGION_NAME + '.amazonaws.com/' + process.env.AWS_ID_SHORT + '/' + process.env.SQS_VENDPERSON_QUEUE_NAME
};
res = await sqs.sendMessage(params).promise().catch(err => errorHandler(err));
console.log(res);
}
return null;
}
问题在于它不会在任何地方引发错误。无论您给它多长时间,它都会在第一个 sendMessage 上超时。我已经删除了消息接收功能,问题仍然存在。一些可能有帮助的附加信息是我一直在使用无服务器进行部署。
【问题讨论】:
-
我可能会补充一点,可以使用本地运行的测试 NodeJS 文件添加队列。仅在 AWS 上存在此问题。
标签: node.js amazon-web-services serverless