看看AWS Node.js SDK - 它可以访问所有 AWS 服务端点。
var sns = new AWS.SNS();
// subscribe
sns.subscribe({topic: "topic", Protocol: "https"}, function (err, data) {
if (err) {
console.log(err); // an error occurred
} else {
console.log(data); // successful response - the body should be in the data
}
});
// publish example
sns.publish({topic: "topic", message: "my message"}, function (err, data) {
if (err) {
console.log(err); // an error occurred
} else {
console.log(data); // successful response - the body should be in the data
}
});
编辑:问题是标准正文解析器不处理纯文本/文本,这是 SNS 作为内容类型发送的内容。这是提取原始主体的代码。把它放在你的身体解析器之前:
app.use(function(req, res, next) {
var d= '';
req.setEncoding('utf8');
req.on('d', function(chunk) {
d+= chunk;
});
req.on('end', function() {
req.rawBody = d;
next();
});
});
然后你可以使用:
JSON.stringify(req.rawBody));
在您的路线中创建一个 javascript 对象并适当地对 SNS 帖子进行操作。
您还可以修改正文解析器以处理文本/纯文本,但修改中间件不是一个好主意。只需使用上面的代码。