C# 如何使用awssdk for.net通过lambda函数向kenisis firehose添加数据?
我使用awssdk版本3在c#中创建了lambda函数,它将json数据传递给firehose stream,firehose stream生成的结果在S3 bucket中出错 无效的输出结构:请检查您的函数,并确保已处理的记录包含有效的结果状态Dropped、Ok或ProcessingFailed 这是我的lambda函数代码C# 如何使用awssdk for.net通过lambda函数向kenisis firehose添加数据?,c#,amazon-kinesis-firehose,aws-sdk-net,C#,Amazon Kinesis Firehose,Aws Sdk Net,我使用awssdk版本3在c#中创建了lambda函数,它将json数据传递给firehose stream,firehose stream生成的结果在S3 bucket中出错 无效的输出结构:请检查您的函数,并确保已处理的记录包含有效的结果状态Dropped、Ok或ProcessingFailed 这是我的lambda函数代码 AmazonKinesisFirehoseConfig config = new AmazonKinesisFirehoseConfig(); config.Regio
AmazonKinesisFirehoseConfig config = new AmazonKinesisFirehoseConfig();
config.RegionEndpoint = Amazon.RegionEndpoint.EUWest2;
AmazonKinesisFirehoseClient firehoseClient = new AmazonKinesisFirehoseClient(config);
string dataAsJson = JsonConvert.SerializeObject(sq);
byte[] dataAsBytes = Encoding.UTF8.GetBytes(dataAsJson);
string base64Data = System.Convert.ToBase64String(dataAsBytes);
using (MemoryStream memoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(base64Data)))
{
try
{
PutRecordRequest requestRecord = new PutRecordRequest();
requestRecord.DeliveryStreamName = MyDeliveryStreamName;
Record record = new Record();
record.Data = memoryStream;
requestRecord.Record = record;
PutRecordResponse responseRecord = await firehoseClient.PutRecordAsync(requestRecord);
return responseRecord.RecordId;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
这个dataAsBytes本身不足以提供给MemoryStream吗?您是否必须将字节base64编码为字符串,然后再编码为字节?使用(MemoryStream MemoryStream=new MemoryStream(dataAsBytes))这个dataAsBytes本身是否足以馈送到MemoryStream?您是否必须将字节base64编码为字符串,然后再编码为字节?使用(MemoryStream MemoryStream=新的MemoryStream(dataAsBytes))