Amazon web services AWS使用DynamoDB Lambda配置运动流

Amazon web services AWS使用DynamoDB Lambda配置运动流,amazon-web-services,aws-lambda,amazon-redshift,amazon-kinesis-firehose,Amazon Web Services,Aws Lambda,Amazon Redshift,Amazon Kinesis Firehose,从这个问题上来讲, DynamoDB-->DynamoDB流-->Lambda函数-->运动消防软管-->红移 我如何配置我的Kinesis函数来获取Lambda函数源 我创建了一个DynamoDB表(购销),并添加了DynamoDB流。然后我配置Lambda函数来拾取DynamoDB流。我的问题是如何配置Kinesis以获取Lambda函数源?我知道如何配置Lambda转换,但是我想把它作为源代码。不确定如何配置下面的直接输入源 谢谢 执行了以下步骤: 在您的情况下,您可以将dynamodb

从这个问题上来讲,

DynamoDB-->DynamoDB流-->Lambda函数-->运动消防软管-->红移

我如何配置我的Kinesis函数来获取Lambda函数源

我创建了一个DynamoDB表(购销),并添加了DynamoDB流。然后我配置Lambda函数来拾取DynamoDB流。我的问题是如何配置Kinesis以获取Lambda函数源?我知道如何配置Lambda转换,但是我想把它作为源代码。不确定如何配置下面的直接输入源

谢谢

执行了以下步骤:


在您的情况下,您可以将dynamodb流式传输到redshift

DynamoDB-->DynamoDB流-->Lambda函数-->动力消防软管-->红移。

首先,需要一个lambda函数来处理DynamoDBStream。对于每个DynamodB流事件,使用firehose
PutRecord
API将数据发送到firehose。从

接下来,我们必须知道如何将数据插入红移。从

对于向Amazon Redshift交付数据,Kinesis Firehose首先提供 将数据以前面描述的格式发送到S3存储桶。 然后,Kinesis Firehose发出Amazon红移复制命令以加载 从S3存储桶到Amazon红移集群的数据

因此,我们应该知道让
COPY
命令将数据映射到红移模式的数据格式。我们必须遵循规则

默认情况下,“复制”命令希望源数据 字符分隔的UTF-8文本。默认分隔符是管道 字符(|)

因此,您可以对输入dynamodb stream事件的lambda进行编程,将其转换为管道(|)分隔行记录,并将其写入firehose

var firehose = new AWS.Firehose();
firehose.putRecord({
  DeliveryStreamName: 'YOUR_FIREHOSE_NAME',
  Record: { /* required */
    Data: "RED_SHIFT_COLUMN_1_DATA|RED_SHIFT_COLUMN_2_DATA\n"
  }
}, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

请记住添加
\n
,因为消防软管不会为您添加新行。

据我所知,您不知道数据如何从Lambda传输到消防软管。在这种情况下,您需要使用PutRecords API()将记录放在lambda中到firehose中,我会在lambda或firehose控制台中编写Put函数吗?您能否给出示例语法,阅读页面,firehouse.putRecord(“PurchaseSalesFirehose”),同步中的记录是什么?我希望亚马逊能制作这个插件,而不是编写脚本,etcI出现了错误,firehose没有定义;请修复或添加/*全局firehose/firehose.putRecord({DeliveryStreamName:'PurchaseSalesKinesis',记录:{/required*/Data:'PurchaseSalesId\n}}},函数(err,Data){if(err)console.log(err,err.stack);//发生错误,否则console.log(Data);//成功响应});通过阅读此处的文档,您需要创建一个firehose API客户端
var firehouse=new AWS.firehouse()并且在运行时环境中,需要安装aws sdk npm包
var firehose = new AWS.Firehose();
firehose.putRecord({
  DeliveryStreamName: 'YOUR_FIREHOSE_NAME',
  Record: { /* required */
    Data: "RED_SHIFT_COLUMN_1_DATA|RED_SHIFT_COLUMN_2_DATA\n"
  }
}, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});