我们已配置了Firehouse数据传递流,该流应用作Nodejs应用程序生成的不同类型事件的缓冲区。
显然,该应用无法将数据流传输到Firehouse流,并显示以下错误消息:
无法流式传输ResourceNotFoundException:在未找到帐户下流式传输我的流。
我生成数据和使用运动学obj的方式如下:
function streamKinesis(req, res){
var params = {
Records: [],
StreamName: "stream_name"
};
params.Records.push({
Data: JSON.stringify(req.body),
PartitionKey: 'bla'
});
var kinesis = new AWS.Kinesis({ region: 'eu-west-1' });
kinesis.listStreams(function (err, data) {
if (err){
console.log(err, err.stack);
}
});
kinesis.putRecords(params, function (err, data) {
if (err) {
console.error("couldn't stream", err.stack);
}
else {
console.log("INFO - successfully send stream");
res.send({success: true});
}
});
}
我会很感激
答案 0 :(得分:0)
在这种情况下,问题是使用的类(在本例中是运动学)而不是消防站。 下面附有代码的代码,以防万一其他人遇到应用程序需要在消防站流中生成数据的情况。 在AWS文档中,它会将您重定向到kinesis api文档。
代码最简洁:
function streamKinesis(req, res){
var params = {
Record: {Data: JSON.stringify(req.body)},
DeliveryStreamName: "[stream_name]"
};
var firehouse = new AWS.Firehose();
firehouse.putRecord(params, function (err, data) {
if (err) {
console.error("couldn't stream", err.stack);
}
else {
console.log("INFO - successfully send stream");
res.send({success: true});
}
});
}