SQS 的意外参数 MessageGroupId
UnexpectedParameter MessageGroupId for SQS
我已经创建了一个 FIFO SQS 队列。
使用以下参数向队列发送消息时,
var params= {
MessageBody: payload,
QueueUrl: sqsURL + body.device + ".fifo"
}
sqs.sendMessage(params, function(err, res) {
err ? callback(err) : callback(null, res);
});
我收到一条警告 "missing parameter messagegroupid"
然后我继续将 MessageGroupId 添加到我的参数中。
var params= {
MessageBody: payload,
MessageGroupId: "posts",
QueueUrl: sqsURL + body.device + ".fifo"
}
sqs.sendMessage(params, function(err, res) {
err ? callback(err) : callback(null, res);
});
然后 SQS 给我 "UnexpectedParameter: Unexpected key 'MessageGroupId' found in params".
我对这组相互矛盾的指令感到困惑。
我在 createQueue 和 sendMessage 命令中使用相同的 SDK 区域。
var sqs= new aws.SQS({ region: "us-east-2" });
我 运行 使用 Lambda 遇到同样的错误(因此找到你的 post)。想知道他们是否忘记刷新本机 SDK,我用我的函数上传了最新版本的 SDK(2.7.7),错误消失了。
由于上传 SDK 删除了 Lambda 中的编辑功能,我随后将其删除并重新上传函数,但错误又回来了:(.
所以现在,如果您想将它与 Lambda 一起使用,您必须将 SDK 包含在您的部署包中。
您没有传递 "MessageGroupId" 参数。您应该将消息组 ID 作为参数传递。对于 FIFO 是强制性的。
请参考下面提到的link,
https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sqs-2012-11-05.html#sendmessage
我已经创建了一个 FIFO SQS 队列。 使用以下参数向队列发送消息时,
var params= {
MessageBody: payload,
QueueUrl: sqsURL + body.device + ".fifo"
}
sqs.sendMessage(params, function(err, res) {
err ? callback(err) : callback(null, res);
});
我收到一条警告 "missing parameter messagegroupid"
然后我继续将 MessageGroupId 添加到我的参数中。
var params= {
MessageBody: payload,
MessageGroupId: "posts",
QueueUrl: sqsURL + body.device + ".fifo"
}
sqs.sendMessage(params, function(err, res) {
err ? callback(err) : callback(null, res);
});
我对这组相互矛盾的指令感到困惑。 我在 createQueue 和 sendMessage 命令中使用相同的 SDK 区域。
var sqs= new aws.SQS({ region: "us-east-2" });
我 运行 使用 Lambda 遇到同样的错误(因此找到你的 post)。想知道他们是否忘记刷新本机 SDK,我用我的函数上传了最新版本的 SDK(2.7.7),错误消失了。
由于上传 SDK 删除了 Lambda 中的编辑功能,我随后将其删除并重新上传函数,但错误又回来了:(.
所以现在,如果您想将它与 Lambda 一起使用,您必须将 SDK 包含在您的部署包中。
您没有传递 "MessageGroupId" 参数。您应该将消息组 ID 作为参数传递。对于 FIFO 是强制性的。 请参考下面提到的link, https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sqs-2012-11-05.html#sendmessage