【发布时间】:2020-07-30 01:48:30
【问题描述】:
我正在尝试使用 Lambda 向 SQS 队列发送消息:
这是我的代码:
var QUEUE_URL = 'https://us-west-2.queue.amazonaws.com/123456789/ntech-event-processing-dev.fifo';
var AWS = require('aws-sdk');
var sqs = new AWS.SQS({region : 'us-west-2'});
exports.handler = function(event, context) {
var params = {
MessageBody: JSON.stringify(event),
QueueUrl: QUEUE_URL
};
sqs.sendMessage(params, function(err,data){
if(err) {
console.log('error:',"Fail Send Message" + err);
context.done('error', "ERROR Put SQS"); // ERROR with message
}else{
console.log('data:',data.MessageId);
context.done(null,''); // SUCCESS
}
});
}
这是我的测试数据 (JSON),请注意我已经在那里定义了 MessageGroupId。
{
"MessageGroupId": "1",
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
我收到以下错误:
2020-04-16T17:40:37.604Z fa709a07-0bcd-4b17-a48b-341a984aec88 INFO error: Fail Send MessageMissingParameter: The request must contain the parameter MessageGroupId.
2020-04-16T17:40:37.661Z fa709a07-0bcd-4b17-a48b-341a984aec88 ERROR Invoke Error {"errorType":"Error","errorMessage":"error","stack":["Error: error"," at _homogeneousError (/var/runtime/CallbackContext.js:13:12)"," at postError (/var/runtime/CallbackContext.js:30:54)"," at done (/var/runtime/CallbackContext.js:57:7)"," at Object.done (/var/runtime/CallbackContext.js:105:16)"," at Response.<anonymous> (/var/task/index.js:13:15)"," at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:364:18)"," at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)"," at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)"," at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)"," at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)"]}
我看过: Lambda : Send a message to SQS 和 Lambda can't send message to SQS 但我没有找到答案。
感谢任何帮助!
【问题讨论】:
-
从事件中删除
MessageGroupId。你的MessageGroupId正在MessageBody之下。
标签: javascript node.js lambda aws-lambda