2016-11-20 25 views
0

我已經創建了一個FIFO SQS隊列。 當使用下面PARAMS發送消息到隊列,意外的SQS參數MessageGroupId

var params= { 
    MessageBody: payload, 
    QueueUrl: sqsURL + body.device + ".fifo" 
} 
sqs.sendMessage(params, function(err, res) { 
    err ? callback(err) : callback(null, res); 
}); 

我得到那個說一個警告「缺少的參數messagegroupid」 enter image description here

我然後繼續在MessageGroupId添加到我的PARAMS。

var params= { 
    MessageBody: payload, 
    MessageGroupId: "posts", 
    QueueUrl: sqsURL + body.device + ".fifo" 
} 
sqs.sendMessage(params, function(err, res) { 
    err ? callback(err) : callback(null, res); 
}); 

enter image description here SQS後來又把我 「UnexpectedParameter:意外鍵 'MessageGroupId' params中找到」。

我被這組衝突的指令所困惑。 我在我的createQueue和sendMessage命令中使用了相同的SDK區域。

var sqs= new aws.SQS({ region: "us-east-2" }); 
+0

FIFO隊列似乎需要[2016-11-17或更高版本的SDK](https://aws.amazon.com/releasenotes/Amazon-SQS/9087335643077522) 。你用什麼版本? –

+0

謝謝你的建議......我改成var sqs = new aws.SQS({region:「us-east-2」,apiVersion:「2016-11-17」}); – ngzhongcai

+0

var sqs = new aws.SQS({region:「us-east-2」,apiVersion:「2012 -11-05「}); – ngzhongcai

回答

1

我遇到了同樣的錯誤使用Lambda(因此找到您的文章)。想知道如果他們忘記刷新原生SDK,我用我的功能上傳了最新版本的SDK(2.7.7),錯誤消失了。

由於上傳SDK中刪除LAMBDA編輯的能力,我則刪除並重新上傳錯誤回來:(功能。

所以現在,如果你想和λ使用它,你必須在你的部署包中包含SDK

+0

對於Node.js,使用npm安裝最新的aws-sdk爲我工作。 – saille