【发布时间】:2018-10-23 02:39:21
【问题描述】:
我在 lambda 中有以下代码来接收 SQS 消息: 当我将消息注入 SQS 时,lambda 触发,但显示 data.Messages 为空。
function receiveMessages(callback)
{
var params = {
QueueUrl: TASK_QUEUE_URL,
MaxNumberOfMessages: 2,
WaitTimeSeconds: 1,
AttributeNames: ["All"]
};
SQS.receiveMessage(params, function(err, data)
{
if (err)
{
console.error(err, err.stack);
callback(err);
}
else if (data.Messages == null)
{
console.log("null message", data);
callback(null,null);
}
else
{
callback(null, data.Messages);
}
});
}
我可能做错了什么并不明显。我尝试了fifo和非fifo队列
【问题讨论】:
-
您的 Lambda 函数是如何被调用的?我假设您不是using the queue as an event source,因为这仅适用于非fifo...但是如果您是,则消息已经在
event中-您不会使用receiveMessages()。 -
队列中真的有可用的消息吗?如果队列为空,您所描述的内容听起来像是正确的行为。
-
@Michael-sqlbot 谢谢 - 这确实是问题所在。我使用队列作为事件源,然后在其上执行 receivemessage(),这是不需要的。我
标签: amazon-web-services aws-lambda amazon-sqs