看看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運營後適當。
您也可以修改body parser來處理text/plain,但修改中間件不是一個好主意。只需使用上面的代碼。
作爲上下文:這種(合理的,天真的)方法失敗的原因是SNS HTTP設置。 「Content-Type:text/plain; charset = UTF-8」 請參閱:http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html (SNS並不真正討好JSON) – Jason