Firehose 没有通过 Lambda 将数据推送到 s3?
Firehose not pushing data into s3 through Lambda?
我正在尝试通过我的 lambda 函数调用 kinesis。这是我的代码
const AWS = require( 'aws-sdk' );
AWS.config.update({ region: 'us-east-1' });
var firehose = new AWS.Firehose();
exports.handler = async (event,context,callback) => {
// TODO implement
const response = {
statusCode:200,
Name:event.Name,
Value:event.Value
};
const params = {
DeliveryStreamName: 'kinesis-fh-pika',
Record: { Data: new Buffer(JSON.stringify(response)) }
};
firehose.putRecord(params, (err, data) => {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data);
});
};
这是我的活动
{
"Name": "sara",
"Value": 10
}
我在 lambda 中没有收到任何错误。它始终将响应显示为 null
。我什至尝试启用日志,但没有发现任何奇怪的行为。
我错过了什么吗?
谢谢
它正在返回 'null' 因为您的 Lambda 函数没有返回任何东西。
试试这个
const AWS = require( 'aws-sdk' );
AWS.config.update({ region: 'us-east-1' });
var firehose = new AWS.Firehose();
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode:200,
Name:event.Name,
Value:event.Value
};
const params = {
DeliveryStreamName: 'kinesis-fh-pika',
Record: { Data: new Buffer(JSON.stringify(response)) }
};
firehose.putRecord(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} // an error occurred
else {
console.log(data);
}
return response;
});
};
我可以解决我的问题。我只缺少一个 callback
电话。 putRecord 似乎只有在得到一些响应时才会发生 callback.Here 是工作代码
const AWS = require( 'aws-sdk' );
AWS.config.update({ region: 'us-east-1' });
var firehose = new AWS.Firehose();
exports.handler = async (event,context,callback) => {
// TODO implement
const response = {
statusCode:200,
Name:event.Name,
Value:event.Value
};
const params = {
DeliveryStreamName: 'kinesis-fh-pika',
Record: { Data: new Buffer(JSON.stringify(response)) }
};
firehose.putRecord(params, (err, data) => {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data);
});
callback(null,"success");
};
我正在尝试通过我的 lambda 函数调用 kinesis。这是我的代码
const AWS = require( 'aws-sdk' );
AWS.config.update({ region: 'us-east-1' });
var firehose = new AWS.Firehose();
exports.handler = async (event,context,callback) => {
// TODO implement
const response = {
statusCode:200,
Name:event.Name,
Value:event.Value
};
const params = {
DeliveryStreamName: 'kinesis-fh-pika',
Record: { Data: new Buffer(JSON.stringify(response)) }
};
firehose.putRecord(params, (err, data) => {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data);
});
};
这是我的活动
{
"Name": "sara",
"Value": 10
}
我在 lambda 中没有收到任何错误。它始终将响应显示为 null
。我什至尝试启用日志,但没有发现任何奇怪的行为。
我错过了什么吗?
谢谢
它正在返回 'null' 因为您的 Lambda 函数没有返回任何东西。
试试这个
const AWS = require( 'aws-sdk' );
AWS.config.update({ region: 'us-east-1' });
var firehose = new AWS.Firehose();
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode:200,
Name:event.Name,
Value:event.Value
};
const params = {
DeliveryStreamName: 'kinesis-fh-pika',
Record: { Data: new Buffer(JSON.stringify(response)) }
};
firehose.putRecord(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} // an error occurred
else {
console.log(data);
}
return response;
});
};
我可以解决我的问题。我只缺少一个 callback
电话。 putRecord 似乎只有在得到一些响应时才会发生 callback.Here 是工作代码
const AWS = require( 'aws-sdk' );
AWS.config.update({ region: 'us-east-1' });
var firehose = new AWS.Firehose();
exports.handler = async (event,context,callback) => {
// TODO implement
const response = {
statusCode:200,
Name:event.Name,
Value:event.Value
};
const params = {
DeliveryStreamName: 'kinesis-fh-pika',
Record: { Data: new Buffer(JSON.stringify(response)) }
};
firehose.putRecord(params, (err, data) => {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data);
});
callback(null,"success");
};