Exemple #1
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            CreateStreamResponse response = new CreateStreamResponse();


            return(response);
        }
Exemple #2
0
        public static string CreateVideoStream(string streamName)
        {
            string streamArn = "";

            try
            {
                List <StreamInfo> streamlList = GetVideoStreamList();

                if (streamlList != null)
                {
                    if (streamlList.FindAll(videoStream => videoStream.StreamName == streamName).Count > 0)
                    {
                        streamArn = "contain";
                    }
                    else
                    {
                        AmazonKinesisVideoClient kinesisVideoClient;

                        using (kinesisVideoClient = new AmazonKinesisVideoClient(Models.MyAWSConfigs.KinesisRegion))
                        {
                            CreateStreamRequest createStreamRequest = new CreateStreamRequest()
                            {
                                StreamName           = streamName,
                                DataRetentionInHours = 1,
                                MediaType            = "video/h264",
                            };

                            CreateStreamResponse createStreamResponse = kinesisVideoClient.CreateStream(createStreamRequest);

                            if (createStreamResponse.HttpStatusCode == System.Net.HttpStatusCode.OK)
                            {
                                streamArn = createStreamResponse.StreamARN;
                            }
                            else
                            {
                                Console.WriteLine("Error creating kinesis video stream");
                            }
                        }
                    }
                }
            }
            catch (AmazonKinesisVideoException e)
            {
                Console.WriteLine("AmazonKinesisVideoException: " + e);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e);
            }

            return(streamArn);
        }
Exemple #3
0
        private static async Task <Stream> CreateStream(StreamAdminClient client, string compartmentId, string streamName, int partitions)
        {
            logger.Info($"Creating stream {streamName} with {partitions} partitions");

            CreateStreamDetails createStreamDetails = new CreateStreamDetails
            {
                CompartmentId = compartmentId,
                Name          = streamName,
                Partitions    = partitions
            };
            CreateStreamRequest createStreamRequest = new CreateStreamRequest
            {
                CreateStreamDetails = createStreamDetails
            };
            CreateStreamResponse createStreamResponse = await client.CreateStream(createStreamRequest);

            return(createStreamResponse.Stream);
        }
Exemple #4
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            CreateStreamResponse response = new CreateStreamResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("StreamARN", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.StreamARN = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
        static CreateStreamResponse CreateStream(IAmazonKinesis kinesisClient, string streamName, int shardCount)
        {
            var request = new CreateStreamRequest {
                StreamName = streamName, ShardCount = shardCount
            };

            try
            {
                CreateStreamResponse response = kinesisClient.CreateStream(request);
                return(response);
            }
            catch (AmazonServiceException e)
            {
                var error = string.Format("Failed to create stream '{0}'. Reason: {1}", streamName, e.Message);
                SelfLog.WriteLine(error);

                return(null);
            }
        }
Exemple #6
0
        public async Task TestCreate()
        {
            // ARRANGE
            AWSConfigs.AWSProfilesLocation = $"{Environment.GetEnvironmentVariable("UserProfile")}\\.aws\\credentials";

            string StreamName         = "test-stream";
            string PresignedUrlBucket = "pre-sign-url-bucket";
            string AccountNumber      = "123456789012";
            string Region             = "us-east-1";

            IAmazonS3 S3Client = new AmazonS3Client();

            GetPreSignedUrlRequest Req = new GetPreSignedUrlRequest()
            {
                BucketName = PresignedUrlBucket,
                Key        = "result.txt",
                Expires    = DateTime.Now.AddMinutes(2),
                Protocol   = Protocol.HTTPS,
                Verb       = HttpVerb.PUT
            };

            string PreSignedUrl = S3Client.GetPreSignedURL(Req);

            string Json = $@"
{{
""requestType"":""create"",
""responseUrl"":""{PreSignedUrl}"",
""stackId"":""arn:aws:cloudformation:{Region}:{AccountNumber}:stack/stack-name/{Guid.NewGuid().ToString()}"",
""requestId"":""12345678"",
""resourceType"":""Custom::KinesisStreamAwaiter"",
""logicalResourceId"":""KinesisStreamAwaiter"",
""resourceProperties"":{{
""StreamName"":""{StreamName}""
}}
}}";


            CustomResourceRequest Request = JsonConvert.DeserializeObject <CustomResourceRequest>(Json);

            TestLambdaLogger  TestLogger    = new TestLambdaLogger();
            TestClientContext ClientContext = new TestClientContext();

            TestLambdaContext Context = new TestLambdaContext()
            {
                FunctionName    = "KinesisStreamAwaiter",
                FunctionVersion = "1",
                Logger          = TestLogger,
                ClientContext   = ClientContext,
                LogGroupName    = "aws/lambda/KinesisStreamAwaiter",
                LogStreamName   = Guid.NewGuid().ToString(),
                RemainingTime   = TimeSpan.FromSeconds(300)
            };


            Entrypoint Entrypoint = new Entrypoint();

            // ACT
            IAmazonKinesis      KinesisClient = new AmazonKinesisClient();
            CreateStreamRequest CreateReq     = new CreateStreamRequest()
            {
                ShardCount = 1,
                StreamName = StreamName
            };


            CreateStreamResponse CreateResponse = await KinesisClient.CreateStreamAsync(CreateReq);

            try
            {
                CustomResourceResult Response = await Entrypoint.ExecuteAsync(Request, Context);

                // ASSERT

                Assert.True(Response.IsSuccess);
            }
            finally
            {
                DeleteStreamRequest DeleteReq = new DeleteStreamRequest()
                {
                    StreamName = StreamName
                };

                await KinesisClient.DeleteStreamAsync(DeleteReq);
            }
        }
Exemple #7
0
        public static string CreateDataStream(string streamName)
        {
            string streamArn = "";

            try
            {
                List <string> streamlList = GetDataStreamList();

                if (streamlList != null)
                {
                    if (streamlList.FindAll(dataStreamName => dataStreamName == streamName).Count > 0)
                    {
                        streamArn = "contain";
                    }
                    else
                    {
                        AmazonKinesisClient kinesisClient;

                        using (kinesisClient = new AmazonKinesisClient(Models.MyAWSConfigs.KinesisRegion))
                        {
                            CreateStreamRequest createStreamRequest = new CreateStreamRequest()
                            {
                                StreamName = streamName,
                                ShardCount = 1,
                            };

                            CreateStreamResponse createStreamResponse = kinesisClient.CreateStream(createStreamRequest);

                            if (createStreamResponse.HttpStatusCode == System.Net.HttpStatusCode.OK)
                            {
                                StreamDescriptionSummary streamSummary = DescribeDataStream(streamName);
                                if (streamSummary != null)
                                {
                                    streamArn = streamSummary.StreamARN;

                                    while (streamSummary.StreamStatus != StreamStatus.ACTIVE ||
                                           streamSummary.StreamStatus == StreamStatus.CREATING)
                                    {
                                        Thread.Sleep(1 * 1000);
                                        streamSummary = DescribeDataStream(streamName);
                                        if (streamSummary == null)
                                        {
                                            streamArn = "";
                                            break;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                Console.WriteLine("Error creating kinesis data stream");
                            }
                        }
                    }
                }
            }
            catch (AmazonKinesisException e)
            {
                Console.WriteLine("AmazonKinesisException: " + e);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e);
            }

            return(streamArn);
        }