Analytics Application
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.
Note: To manage Amazon Kinesis Data Analytics for Apache Flink applications, use the
aws.kinesisanalyticsv2.Application
resource.
Example Usage
Kinesis Stream Input
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kinesis.Stream;
import com.pulumi.aws.kinesis.StreamArgs;
import com.pulumi.aws.kinesis.AnalyticsApplication;
import com.pulumi.aws.kinesis.AnalyticsApplicationArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsKinesisStreamArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsParallelismArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsSchemaArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsSchemaRecordFormatArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParametersArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJsonArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var testStream = new Stream("testStream", StreamArgs.builder()
.shardCount(1)
.build());
var testApplication = new AnalyticsApplication("testApplication", AnalyticsApplicationArgs.builder()
.inputs(AnalyticsApplicationInputsArgs.builder()
.namePrefix("test_prefix")
.kinesisStream(AnalyticsApplicationInputsKinesisStreamArgs.builder()
.resourceArn(testStream.arn())
.roleArn(aws_iam_role.test().arn())
.build())
.parallelism(AnalyticsApplicationInputsParallelismArgs.builder()
.count(1)
.build())
.schema(AnalyticsApplicationInputsSchemaArgs.builder()
.recordColumns(AnalyticsApplicationInputsSchemaRecordColumnArgs.builder()
.mapping("$.test")
.name("test")
.sqlType("VARCHAR(8)")
.build())
.recordEncoding("UTF-8")
.recordFormat(AnalyticsApplicationInputsSchemaRecordFormatArgs.builder()
.mappingParameters(AnalyticsApplicationInputsSchemaRecordFormatMappingParametersArgs.builder()
.json(AnalyticsApplicationInputsSchemaRecordFormatMappingParametersJsonArgs.builder()
.recordRowPath("$")
.build())
.build())
.build())
.build())
.build())
.build());
}
}
Starting An Application
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloudwatch.LogGroup;
import com.pulumi.aws.cloudwatch.LogStream;
import com.pulumi.aws.cloudwatch.LogStreamArgs;
import com.pulumi.aws.kinesis.Stream;
import com.pulumi.aws.kinesis.StreamArgs;
import com.pulumi.aws.kinesis.FirehoseDeliveryStream;
import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;
import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;
import com.pulumi.aws.kinesis.AnalyticsApplication;
import com.pulumi.aws.kinesis.AnalyticsApplicationArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationCloudwatchLoggingOptionsArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsSchemaArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsSchemaRecordFormatArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParametersArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsSchemaRecordFormatMappingParametersCsvArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationInputsKinesisStreamArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationOutputArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationOutputSchemaArgs;
import com.pulumi.aws.kinesis.inputs.AnalyticsApplicationOutputKinesisFirehoseArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleLogGroup = new LogGroup("exampleLogGroup");
var exampleLogStream = new LogStream("exampleLogStream", LogStreamArgs.builder()
.logGroupName(exampleLogGroup.name())
.build());
var exampleStream = new Stream("exampleStream", StreamArgs.builder()
.shardCount(1)
.build());
var exampleFirehoseDeliveryStream = new FirehoseDeliveryStream("exampleFirehoseDeliveryStream", FirehoseDeliveryStreamArgs.builder()
.destination("extended_s3")
.extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()
.bucketArn(aws_s3_bucket.example().arn())
.roleArn(aws_iam_role.example().arn())
.build())
.build());
var test = new AnalyticsApplication("test", AnalyticsApplicationArgs.builder()
.cloudwatchLoggingOptions(AnalyticsApplicationCloudwatchLoggingOptionsArgs.builder()
.logStreamArn(exampleLogStream.arn())
.roleArn(aws_iam_role.example().arn())
.build())
.inputs(AnalyticsApplicationInputsArgs.builder()
.namePrefix("example_prefix")
.schema(AnalyticsApplicationInputsSchemaArgs.builder()
.recordColumns(AnalyticsApplicationInputsSchemaRecordColumnArgs.builder()
.name("COLUMN_1")
.sqlType("INTEGER")
.build())
.recordFormat(AnalyticsApplicationInputsSchemaRecordFormatArgs.builder()
.mappingParameters(AnalyticsApplicationInputsSchemaRecordFormatMappingParametersArgs.builder()
.csv(AnalyticsApplicationInputsSchemaRecordFormatMappingParametersCsvArgs.builder()
.recordColumnDelimiter(",")
.recordRowDelimiter("|")
.build())
.build())
.build())
.build())
.kinesisStream(AnalyticsApplicationInputsKinesisStreamArgs.builder()
.resourceArn(exampleStream.arn())
.roleArn(aws_iam_role.example().arn())
.build())
.startingPositionConfigurations(AnalyticsApplicationInputsStartingPositionConfigurationArgs.builder()
.startingPosition("NOW")
.build())
.build())
.outputs(AnalyticsApplicationOutputArgs.builder()
.name("OUTPUT_1")
.schema(AnalyticsApplicationOutputSchemaArgs.builder()
.recordFormatType("CSV")
.build())
.kinesisFirehose(AnalyticsApplicationOutputKinesisFirehoseArgs.builder()
.resourceArn(exampleFirehoseDeliveryStream.arn())
.roleArn(aws_iam_role.example().arn())
.build())
.build())
.startApplication(true)
.build());
}
}
Import
Kinesis Analytics Application can be imported by using ARN, e.g.,
$ pulumi import aws:kinesis/analyticsApplication:AnalyticsApplication example arn:aws:kinesisanalytics:us-west-2:1234567890:application/example
Properties
The CloudWatch log stream options to monitor application errors. See CloudWatch Logging Options below for more details.
The Timestamp when the application version was created.
Description of the application.
Input configuration of the application. See Inputs below for more details.
The Timestamp when the application was last updated.
Output destination configuration of the application. See Outputs below for more details.
An S3 Reference Data Source for the application. See Reference Data Sources below for more details.
Whether to start or stop the Kinesis Analytics Application. To start an application, an input with a defined starting_position
must be configured. To modify an application's starting position, first stop the application by setting start_application = false
, then update starting_position
and set start_application = true
.