Show / Hide Table of Contents

Namespace Pulumi.Aws.Kinesis

Classes

AnalyticsApplication

Provides a Kinesis Analytics Application resource. Kinesis Analytics is a managed service that allows processing and analyzing streaming data using standard SQL.

For more details, see the Amazon Kinesis Analytics Documentation.

Example Usage

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
public MyStack()
{
    var testStream = new Aws.Kinesis.Stream("testStream", new Aws.Kinesis.StreamArgs
    {
        ShardCount = 1,
    });
    var testApplication = new Aws.Kinesis.AnalyticsApplication("testApplication", new Aws.Kinesis.AnalyticsApplicationArgs
    {
        Inputs = new Aws.Kinesis.Inputs.AnalyticsApplicationInputsArgs
        {
            KinesisStream = new Aws.Kinesis.Inputs.AnalyticsApplicationInputsKinesisStreamArgs
            {
                ResourceArn = testStream.Arn,
                RoleArn = aws_iam_role.Test.Arn,
            },
            NamePrefix = "test_prefix",
            Parallelism = new Aws.Kinesis.Inputs.AnalyticsApplicationInputsParallelismArgs
            {
                Count = 1,
            },
            Schema = new Aws.Kinesis.Inputs.AnalyticsApplicationInputsSchemaArgs
            {
                RecordColumns = 
                {
                    new Aws.Kinesis.Inputs.AnalyticsApplicationInputsSchemaRecordColumnArgs
                    {
                        Mapping = "$$.test",
                        Name = "test",
                        SqlType = "VARCHAR(8)",
                    },
                },
                RecordEncoding = "UTF-8",
                RecordFormat = new Aws.Kinesis.Inputs.AnalyticsApplicationInputsSchemaRecordFormatArgs
                {
                    MappingParameters = new Aws.Kinesis.Inputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParametersArgs
                    {
                        Json = new Aws.Kinesis.Inputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJsonArgs
                        {
                            RecordRowPath = "$$",
                        },
                    },
                },
            },
        },
    });
}

}

AnalyticsApplicationArgs

AnalyticsApplicationState

FirehoseDeliveryStream

Provides a Kinesis Firehose Delivery Stream resource. Amazon Kinesis Firehose is a fully managed, elastic service to easily deliver real-time data streams to destinations such as Amazon S3 and Amazon Redshift.

For more details, see the Amazon Kinesis Firehose Documentation.

Example Usage

Extended S3 Destination

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
public MyStack()
{
    var bucket = new Aws.S3.Bucket("bucket", new Aws.S3.BucketArgs
    {
        Acl = "private",
    });
    var firehoseRole = new Aws.Iam.Role("firehoseRole", new Aws.Iam.RoleArgs
    {
        AssumeRolePolicy = @"{
""Version"": ""2012-10-17"",
""Statement"": [
{
  ""Action"": ""sts:AssumeRole"",
  ""Principal"": {
    ""Service"": ""firehose.amazonaws.com""
  },
  ""Effect"": ""Allow"",
  ""Sid"": """"
}
]
}

",
    });
    var lambdaIam = new Aws.Iam.Role("lambdaIam", new Aws.Iam.RoleArgs
    {
        AssumeRolePolicy = @"{
""Version"": ""2012-10-17"",
""Statement"": [
{
  ""Action"": ""sts:AssumeRole"",
  ""Principal"": {
    ""Service"": ""lambda.amazonaws.com""
  },
  ""Effect"": ""Allow"",
  ""Sid"": """"
}
]
}

",
    });
    var lambdaProcessor = new Aws.Lambda.Function("lambdaProcessor", new Aws.Lambda.FunctionArgs
    {
        Code = new FileArchive("lambda.zip"),
        Handler = "exports.handler",
        Role = lambdaIam.Arn,
        Runtime = "nodejs8.10",
    });
    var extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream("extendedS3Stream", new Aws.Kinesis.FirehoseDeliveryStreamArgs
    {
        Destination = "extended_s3",
        ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs
        {
            BucketArn = bucket.Arn,
            ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs
            {
                Enabled = "true",
                Processors = 
                {
                    new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs
                    {
                        Parameters = 
                        {
                            new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs
                            {
                                ParameterName = "LambdaArn",
                                ParameterValue = lambdaProcessor.Arn.Apply(arn => $"{arn}:$$LATEST"),
                            },
                        },
                        Type = "Lambda",
                    },
                },
            },
            RoleArn = firehoseRole.Arn,
        },
    });
}

}

S3 Destination

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
public MyStack()
{
    var bucket = new Aws.S3.Bucket("bucket", new Aws.S3.BucketArgs
    {
        Acl = "private",
    });
    var firehoseRole = new Aws.Iam.Role("firehoseRole", new Aws.Iam.RoleArgs
    {
        AssumeRolePolicy = @"{
""Version"": ""2012-10-17"",
""Statement"": [
{
  ""Action"": ""sts:AssumeRole"",
  ""Principal"": {
    ""Service"": ""firehose.amazonaws.com""
  },
  ""Effect"": ""Allow"",
  ""Sid"": """"
}
]
}

",
    });
    var testStream = new Aws.Kinesis.FirehoseDeliveryStream("testStream", new Aws.Kinesis.FirehoseDeliveryStreamArgs
    {
        Destination = "s3",
        S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamS3ConfigurationArgs
        {
            BucketArn = bucket.Arn,
            RoleArn = firehoseRole.Arn,
        },
    });
}

}

Redshift Destination

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
public MyStack()
{
    var testCluster = new Aws.RedShift.Cluster("testCluster", new Aws.RedShift.ClusterArgs
    {
        ClusterIdentifier = "tf-redshift-cluster-%d",
        ClusterType = "single-node",
        DatabaseName = "test",
        MasterPassword = "T3stPass",
        MasterUsername = "testuser",
        NodeType = "dc1.large",
    });
    var testStream = new Aws.Kinesis.FirehoseDeliveryStream("testStream", new Aws.Kinesis.FirehoseDeliveryStreamArgs
    {
        Destination = "redshift",
        RedshiftConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs
        {
            ClusterJdbcurl = Output.Tuple(testCluster.Endpoint, testCluster.DatabaseName).Apply(values =>
            {
                var endpoint = values.Item1;
                var databaseName = values.Item2;
                return $"jdbc:redshift://{endpoint}/{databaseName}";
            }),
            CopyOptions = "delimiter '|'",
            DataTableColumns = "test-col",
            DataTableName = "test-table",
            Password = "T3stPass",
            RoleArn = aws_iam_role.Firehose_role.Arn,
            S3BackupConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs
            {
                BucketArn = aws_s3_bucket.Bucket.Arn,
                BufferInterval = 300,
                BufferSize = 15,
                CompressionFormat = "GZIP",
                RoleArn = aws_iam_role.Firehose_role.Arn,
            },
            S3BackupMode = "Enabled",
            Username = "testuser",
        },
        S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamS3ConfigurationArgs
        {
            BucketArn = aws_s3_bucket.Bucket.Arn,
            BufferInterval = 400,
            BufferSize = 10,
            CompressionFormat = "GZIP",
            RoleArn = aws_iam_role.Firehose_role.Arn,
        },
    });
}

}

Elasticsearch Destination

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
public MyStack()
{
    var testCluster = new Aws.ElasticSearch.Domain("testCluster", new Aws.ElasticSearch.DomainArgs
    {
    });
    var testStream = new Aws.Kinesis.FirehoseDeliveryStream("testStream", new Aws.Kinesis.FirehoseDeliveryStreamArgs
    {
        Destination = "elasticsearch",
        ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs
        {
            DomainArn = testCluster.Arn,
            IndexName = "test",
            ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs
            {
                Enabled = "true",
                Processors = 
                {
                    new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs
                    {
                        Parameters = 
                        {
                            new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs
                            {
                                ParameterName = "LambdaArn",
                                ParameterValue = $"{aws_lambda_function.Lambda_processor.Arn}:$$LATEST",
                            },
                        },
                        Type = "Lambda",
                    },
                },
            },
            RoleArn = aws_iam_role.Firehose_role.Arn,
            TypeName = "test",
        },
        S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamS3ConfigurationArgs
        {
            BucketArn = aws_s3_bucket.Bucket.Arn,
            BufferInterval = 400,
            BufferSize = 10,
            CompressionFormat = "GZIP",
            RoleArn = aws_iam_role.Firehose_role.Arn,
        },
    });
}

}

Splunk Destination

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
public MyStack()
{
    var testStream = new Aws.Kinesis.FirehoseDeliveryStream("testStream", new Aws.Kinesis.FirehoseDeliveryStreamArgs
    {
        Destination = "splunk",
        S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamS3ConfigurationArgs
        {
            BucketArn = aws_s3_bucket.Bucket.Arn,
            BufferInterval = 400,
            BufferSize = 10,
            CompressionFormat = "GZIP",
            RoleArn = aws_iam_role.Firehose.Arn,
        },
        SplunkConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationArgs
        {
            HecAcknowledgmentTimeout = 600,
            HecEndpoint = "https://http-inputs-mydomain.splunkcloud.com:443",
            HecEndpointType = "Event",
            HecToken = "51D4DA16-C61B-4F5F-8EC7-ED4301342A4A",
            S3BackupMode = "FailedEventsOnly",
        },
    });
}

}

FirehoseDeliveryStreamArgs

FirehoseDeliveryStreamState

GetStream

GetStreamArgs

GetStreamResult

Stream

Provides a Kinesis Stream resource. Amazon Kinesis is a managed service that scales elastically for real-time processing of streaming big data.

For more details, see the Amazon Kinesis Documentation.

Example Usage

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
public MyStack()
{
    var testStream = new Aws.Kinesis.Stream("testStream", new Aws.Kinesis.StreamArgs
    {
        RetentionPeriod = 48,
        ShardCount = 1,
        ShardLevelMetrics = 
        {
            "IncomingBytes",
            "OutgoingBytes",
        },
        Tags = 
        {
            { "Environment", "test" },
        },
    });
}

}

StreamArgs

StreamState

VideoStream

Provides a Kinesis Video Stream resource. Amazon Kinesis Video Streams makes it easy to securely stream video from connected devices to AWS for analytics, machine learning (ML), playback, and other processing.

For more details, see the Amazon Kinesis Documentation.

Example Usage

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
public MyStack()
{
    var @default = new Aws.Kinesis.VideoStream("default", new Aws.Kinesis.VideoStreamArgs
    {
        DataRetentionInHours = 1,
        DeviceName = "kinesis-video-device-name",
        MediaType = "video/h264",
        Tags = 
        {
            { "Name", "kinesis-video-stream" },
        },
    });
}

}

VideoStreamArgs

VideoStreamState

Back to top Copyright 2016-2020, Pulumi Corporation.