/// <summary> /// This method verifies your credentials, creates a Kinesis stream, waits for the stream /// to become active, then puts 10 records in it, and (optionally) deletes the stream. /// </summary> public static void Main(string[] args) { const string myStreamName = "myTestStream"; const int myStreamSize = 1; try { var createStreamRequest = new CreateStreamRequest(); createStreamRequest.StreamName = myStreamName; createStreamRequest.ShardCount = myStreamSize; var createStreamReq = createStreamRequest; kinesisClient.CreateStream(createStreamReq); Console.Error.WriteLine("Created Stream : " + myStreamName); } catch (ResourceInUseException) { Console.Error.WriteLine("Producer is quitting without creating stream " + myStreamName + " to put records into as a stream of the same name already exists."); Environment.Exit(1); } WaitForStreamToBecomeAvailable(myStreamName); Console.Error.WriteLine("Putting records in stream : " + myStreamName); // Write 10 UTF-8 encoded records to the stream. for (int j = 0; j < 10; ++j) { PutRecordRequest requestRecord = new PutRecordRequest(); requestRecord.StreamName = myStreamName; requestRecord.Data = new MemoryStream(Encoding.UTF8.GetBytes("testData-" + j)); requestRecord.PartitionKey = "partitionKey-" + j; PutRecordResult putResult = kinesisClient.PutRecord(requestRecord); Console.Error.WriteLine( String.Format("Successfully putrecord {0}:\n\t partition key = {1,15}, shard ID = {2}", j, requestRecord.PartitionKey, putResult.ShardId)); } // Uncomment the following if you wish to delete the stream here. //Console.Error.WriteLine("Deleting stream : " + myStreamName); //DeleteStreamRequest deleteStreamReq = new DeleteStreamRequest(); //deleteStreamReq.StreamName = myStreamName; //try //{ // kinesisClient.DeleteStream(deleteStreamReq); // Console.Error.WriteLine("Stream is now being deleted : " + myStreamName); //} //catch (ResourceNotFoundException ex) // // Console.Error.WriteLine("Stream could not be found; " + ex); //} //catch (AmazonClientException ex) //{ // Console.Error.WriteLine("Error deleting stream; " + ex); //} }
public static UserRecordResult FromProtobufMessage(PutRecordResult r) { var attempts = new List <Attempt>(); foreach (var attempt in r.Attempts) { attempts.Add(Attempt.FromProtobufMessage(attempt)); } return(new UserRecordResult( attempts, r.SequenceNumber, r.ShardId, r.Success)); }
public Message to_put_record_result() { Message m = new Message(); m.SourceId = source_id; m.Id = (ulong)new KPLNETInterface.RandomGenerator().GetNextInt64(0, long.MaxValue); var prr = new PutRecordResult(); m.PutRecordResult = prr; try { prr.Success = false; } catch (Exception ex) { StdErrorOut.Instance.StdOut(LogLevel.debug, ex.ToString()); throw ex; } for (int i = 0; i < attempts.Count; i++) { var a = new Aws.Kinesis.Protobuf.Attempt(); prr.Attempts.Add(a); var delay = (i == 0) ? attempts[i].Start() - Arrival() : attempts[i].Start() - attempts[i - 1].End(); a.Delay = (uint)delay.TotalMilliseconds; a.Duration = (uint)attempts[i].duration(); a.Success = attempts[i].Success(); StdErrorOut.Instance.StdOut(LogLevel.debug, "UserRecord.to_put_record_result a.Success = " + a.Success); if (a.Success) { prr.ShardId = attempts[i].Shard_id(); prr.SequenceNumber = attempts[i].Sequence_number(); prr.Success = true; } else { a.ErrorCode = attempts[i].Error_code(); a.ErrorMessage = attempts[i].Error_message(); } } finished = true; return(m); }