Beispiel #1
0
        internal virtual CreateDeliveryStreamResponse CreateDeliveryStream(CreateDeliveryStreamRequest request)
        {
            var marshaller   = new CreateDeliveryStreamRequestMarshaller();
            var unmarshaller = CreateDeliveryStreamResponseUnmarshaller.Instance;

            return(Invoke <CreateDeliveryStreamRequest, CreateDeliveryStreamResponse>(request, marshaller, unmarshaller));
        }
Beispiel #2
0
        /// <summary>
        /// Initiates the asynchronous execution of the CreateDeliveryStream operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the CreateDeliveryStream operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/CreateDeliveryStream">REST API Reference for CreateDeliveryStream Operation</seealso>
        public virtual Task <CreateDeliveryStreamResponse> CreateDeliveryStreamAsync(CreateDeliveryStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new CreateDeliveryStreamRequestMarshaller();
            var unmarshaller = CreateDeliveryStreamResponseUnmarshaller.Instance;

            return(InvokeAsync <CreateDeliveryStreamRequest, CreateDeliveryStreamResponse>(request, marshaller,
                                                                                           unmarshaller, cancellationToken));
        }
        /// <summary>
        /// Initiates the asynchronous execution of the CreateDeliveryStream operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the CreateDeliveryStream operation on AmazonKinesisFirehoseClient.</param>
        /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param>
        /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        ///
        /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateDeliveryStream
        ///         operation.</returns>
        public IAsyncResult BeginCreateDeliveryStream(CreateDeliveryStreamRequest request, AsyncCallback callback, object state)
        {
            var marshaller   = new CreateDeliveryStreamRequestMarshaller();
            var unmarshaller = CreateDeliveryStreamResponseUnmarshaller.Instance;

            return(BeginInvoke <CreateDeliveryStreamRequest>(request, marshaller, unmarshaller,
                                                             callback, state));
        }
Beispiel #4
0
        /// <summary>
        /// Initiates the asynchronous execution of the CreateDeliveryStream operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the CreateDeliveryStream operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/CreateDeliveryStream">REST API Reference for CreateDeliveryStream Operation</seealso>
        public virtual Task <CreateDeliveryStreamResponse> CreateDeliveryStreamAsync(CreateDeliveryStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = CreateDeliveryStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateDeliveryStreamResponseUnmarshaller.Instance;

            return(InvokeAsync <CreateDeliveryStreamResponse>(request, options, cancellationToken));
        }
Beispiel #5
0
        internal virtual CreateDeliveryStreamResponse CreateDeliveryStream(CreateDeliveryStreamRequest request)
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = CreateDeliveryStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateDeliveryStreamResponseUnmarshaller.Instance;

            return(Invoke <CreateDeliveryStreamResponse>(request, options));
        }
Beispiel #6
0
        /// <summary>
        /// Initiates the asynchronous execution of the CreateDeliveryStream operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the CreateDeliveryStream operation on AmazonKinesisFirehoseClient.</param>
        /// <param name="callback">An Action delegate that is invoked when the operation completes.</param>
        /// <param name="options">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/CreateDeliveryStream">REST API Reference for CreateDeliveryStream Operation</seealso>
        public virtual void CreateDeliveryStreamAsync(CreateDeliveryStreamRequest request, AmazonServiceCallback <CreateDeliveryStreamRequest, CreateDeliveryStreamResponse> callback, AsyncOptions options = null)
        {
            options = options == null?new AsyncOptions():options;
            var marshaller   = CreateDeliveryStreamRequestMarshaller.Instance;
            var unmarshaller = CreateDeliveryStreamResponseUnmarshaller.Instance;
            Action <AmazonWebServiceRequest, AmazonWebServiceResponse, Exception, AsyncOptions> callbackHelper = null;

            if (callback != null)
            {
                callbackHelper = (AmazonWebServiceRequest req, AmazonWebServiceResponse res, Exception ex, AsyncOptions ao) => {
                    AmazonServiceResult <CreateDeliveryStreamRequest, CreateDeliveryStreamResponse> responseObject
                        = new AmazonServiceResult <CreateDeliveryStreamRequest, CreateDeliveryStreamResponse>((CreateDeliveryStreamRequest)req, (CreateDeliveryStreamResponse)res, ex, ao.State);
                    callback(responseObject);
                }
            }
            ;
            BeginInvoke <CreateDeliveryStreamRequest>(request, marshaller, unmarshaller, options, callbackHelper);
        }
        /// <summary>
        /// Kinesis Firehoseへデータを書き込む関数です
        /// ローカル開発環境として localStack を使用しています
        /// </summary>
        /// <param name="input"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public async Task<string> FunctionHandler(FunctionInput input, ILambdaContext context)
        {
            #region ローカル開発用のコード
            // S3 の作成
            var creds = new BasicAWSCredentials("dummy", "dummy");
            var s3Client = new AmazonS3Client(creds, new AmazonS3Config
            {
                ServiceURL = "http://localhost:4572",
                UseHttp = true,
                ForcePathStyle = true,
                AuthenticationRegion = "us-east-1",
            });

            if (!await AmazonS3Util.DoesS3BucketExistAsync(s3Client, _bucket))
            {
                await s3Client.PutBucketAsync(new PutBucketRequest
                {
                    BucketName = _bucket,
                    UseClientRegion = true
                });
            }

            // Kinesis Firehose の作成
            var request = new CreateDeliveryStreamRequest
            {
                DeliveryStreamName = _deliveryStream,
                ExtendedS3DestinationConfiguration = new ExtendedS3DestinationConfiguration
                {
                    BucketARN = $"arn:aws:s3:::{_bucket}",
                    Prefix = "firehose/",
                    RoleARN = "arn:aws:iam::dummy:role/dummy",
                }
            };

            var client = new AmazonKinesisFirehoseClient(creds, new AmazonKinesisFirehoseConfig
            {
                ServiceURL = _serviceURL,
            });

            var response = await client.ListDeliveryStreamsAsync();
            if (!response.DeliveryStreamNames.Any(_ => _ == _deliveryStream))
            {
                await client.CreateDeliveryStreamAsync(request);
            }
            #endregion

            var data = JsonConvert.SerializeObject(input);
            var record = new Record()
            {
                Data = new MemoryStream(Encoding.UTF8.GetBytes(data))
            };

            // Kinesis Firehose に対してデータを書き込む
            var res = await client.PutRecordAsync(_deliveryStream, record);
            if (res.HttpStatusCode == HttpStatusCode.OK)
            {
                return $"RecordId: {res.RecordId}";
            }
            else
            {
                return "Error";
            }
        }