Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用awssdk for.net通过lambda函数向kenisis firehose添加数据?_C#_Amazon Kinesis Firehose_Aws Sdk Net - Fatal编程技术网

C# 如何使用awssdk for.net通过lambda函数向kenisis firehose添加数据?

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

我使用awssdk版本3在c#中创建了lambda函数,它将json数据传递给firehose stream,firehose stream生成的结果在S3 bucket中出错

无效的输出结构:请检查您的函数,并确保已处理的记录包含有效的结果状态Dropped、Ok或ProcessingFailed

这是我的lambda函数代码

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