производить данные из приложения nodejs в пожарную часть - PullRequest
0 голосов
/ 28 января 2019

Мы настроили поток доставки данных в хранилище, который должен использоваться в качестве буфера для различных типов событий, генерируемых приложением Nodejs.

Похоже, что приложение не может передавать данные в поток хранилища,следующее сообщение об ошибке:

не удалось потоковое ResourceNotFoundException: поток my-stream под учетной записью не найден.

Способ генерации данных и использования объекта kinesis:следующим образом:

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});
        }
    });
}

Буду признателен за любые отзывы

1 Ответ

0 голосов
/ 30 января 2019

Проблема в этом случае заключалась в использовании класса, который в данном случае был кинезисом, а не пожарной частью.Ниже прилагается код того, как это должно быть написано на случай, если кто-то еще столкнется с ситуацией, когда приложению нужно будет генерировать данные о потоковой передаче Firehouse.В документации 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});
    }
});
}
...