[英]How can I send messages to my queue and a post request?
我有一个将数据发布到数据库的功能。 它工作正常,但我也想使用相同的功能发送消息来触发另一个功能。
我试图同时发送消息并发出帖子请求,但此时只有帖子请求有效
这是我的代码的样子
const params = {
"TableName": "sites",
"Item": {
userId: event.requestContext.identity.cognitoIdentityId,
siteId: siteIdFinal,
...data,
createdAt: Date.now()
}
};
const messageParams = {
MessageBody: 'Waddup fam',
QueueUrl: ' https://sqs.eu-west-1.amazonaws.com/106845550704/MyQueue'
};
try {
await dynamoDbLib.call("put", params);
sqs.sendMessage(messageParams, (err, data) => {
if (err) {
console.log("Error: "+err);
} else {
console.log("Success: "+data.MessageId);
}
});
return success(params.Item);
} catch (e) {
console.log(e);
return failure({ status: false });
}
我没有收到任何错误我只是返回已发布的数据。 我以为我应该收到我发送的消息的消息ID,但我没有得到。 当我查看cloudwatch日志时,不会发送消息
您的异步函数在sendMessage执行回调之前返回params.Item
。 使用promise来确保两种方法都正确完成
await sqs.sendMessage(messageParams).promise()
.then(function(data) {
console.log("Success: "+data.MessageId);
}).catch(function(err) {
console.log("Error: "+err);
});
有关aws-sdk和promises的更多信息: https : //aws.amazon.com/blogs/developer/support-for-promises-in-the-sdk/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.