AnalyticsApplication

class AnalyticsApplication : KotlinCustomResource

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

Link copied to clipboard
val arn: Output<String>

The ARN of the Kinesis Analytics Appliation.

Link copied to clipboard

The CloudWatch log stream options to monitor application errors. See CloudWatch Logging Options below for more details.

Link copied to clipboard
val code: Output<String>?

SQL Code to transform input data, and generate output.

Link copied to clipboard
val createTimestamp: Output<String>

The Timestamp when the application version was created.

Link copied to clipboard
val description: Output<String>?

Description of the application.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

Input configuration of the application. See Inputs below for more details.

Link copied to clipboard

The Timestamp when the application was last updated.

Link copied to clipboard
val name: Output<String>

Name of the Kinesis Analytics Application.

Link copied to clipboard

Output destination configuration of the application. See Outputs below for more details.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

An S3 Reference Data Source for the application. See Reference Data Sources below for more details.

Link copied to clipboard

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.

Link copied to clipboard
val status: Output<String>

The Status of the application.

Link copied to clipboard
val tags: Output<Map<String, String>>?

Key-value map of tags for the Kinesis Analytics Application. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val tagsAll: Output<Map<String, String>>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard
val version: Output<Int>

The Version of the application.