IBi*_*rle 6 amazon-web-services node.js serverless
我在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;
}
Run Code Online (Sandbox Code Playgroud)
问题是它不会在任何地方抛出错误.无论你花多长时间,它都会在第一个sendMessage上超时.我已经删除了消息接收功能,问题仍然存在.一些可能有用的其他信息是我一直在使用无服务器进行部署.
您没有包含 lambda 函数的其余部分,但我假设您的数据库实例位于 VPC 中。如果是这样,您需要:
要点(我通过惨痛的教训才了解到):当您将 lambda 函数添加到子网时,请确保仅将其添加到私有子网,否则什么都不会起作用。
需要做很多修改才能做到正确,但这是可行的。以下是一些相关文档:
https://docs.aws.amazon.com/lambda/latest/dg/vpc.html
和
https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/
归档时间: |
|
查看次数: |
738 次 |
最近记录: |