Aws lambda 消防软管未通过Lambda将数据推入s3?

Aws lambda 消防软管未通过Lambda将数据推入s3?,aws-lambda,amazon-kinesis-firehose,Aws Lambda,Amazon Kinesis Firehose,我正试图通过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 = {

我正试图通过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;
});
};

我能解决我的问题。我所缺少的只是一个
回调
调用。putRecord似乎只有在收到响应回调时才会发生

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

谢谢查德·埃利亚斯。通常,当您将记录放入消防软管时,它会给您一个
记录ID
。我希望它显示在我的lambda输出中,而不是null,因为一旦我收到它,就意味着数据被推送到S3.Sry,当我使用您的代码时,它不适合我。但我投了更高的票。未定义Thankscalback。此=>exports.handler=async(事件)需要=>exports.handler=async(事件、上下文、回调)谢谢@ChadElias指出这一点。这是一个坏的复制粘贴。