Application

class Application : KotlinCustomResource

Manages a Kinesis Analytics v2 Application. This resource can be used to manage both Kinesis Data Analytics for SQL applications and Kinesis Data Analytics for Apache Flink applications.

Note: Kinesis Data Analytics for SQL applications created using this resource cannot currently be viewed in the AWS Console. To manage Kinesis Data Analytics for SQL applications that can also be viewed in the AWS Console, use the aws.kinesis.AnalyticsApplication resource.

Example Usage

Apache Flink Application

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.s3.BucketV2;
import com.pulumi.aws.s3.BucketObjectv2;
import com.pulumi.aws.s3.BucketObjectv2Args;
import com.pulumi.aws.kinesisanalyticsv2.Application;
import com.pulumi.aws.kinesisanalyticsv2.ApplicationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationApplicationCodeConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationEnvironmentPropertiesArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationFlinkApplicationConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationArgs;
import com.pulumi.asset.FileAsset;
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 exampleBucketV2 = new BucketV2("exampleBucketV2");
var exampleBucketObjectv2 = new BucketObjectv2("exampleBucketObjectv2", BucketObjectv2Args.builder()
.bucket(exampleBucketV2.id())
.key("example-flink-application")
.source(new FileAsset("flink-app.jar"))
.build());
var exampleApplication = new Application("exampleApplication", ApplicationArgs.builder()
.runtimeEnvironment("FLINK-1_8")
.serviceExecutionRole(aws_iam_role.example().arn())
.applicationConfiguration(ApplicationApplicationConfigurationArgs.builder()
.applicationCodeConfiguration(ApplicationApplicationConfigurationApplicationCodeConfigurationArgs.builder()
.codeContent(ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs.builder()
.s3ContentLocation(ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocationArgs.builder()
.bucketArn(exampleBucketV2.arn())
.fileKey(exampleBucketObjectv2.key())
.build())
.build())
.codeContentType("ZIPFILE")
.build())
.environmentProperties(ApplicationApplicationConfigurationEnvironmentPropertiesArgs.builder()
.propertyGroups(
ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArgs.builder()
.propertyGroupId("PROPERTY-GROUP-1")
.propertyMap(Map.of("Key1", "Value1"))
.build(),
ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArgs.builder()
.propertyGroupId("PROPERTY-GROUP-2")
.propertyMap(Map.ofEntries(
Map.entry("KeyA", "ValueA"),
Map.entry("KeyB", "ValueB")
))
.build())
.build())
.flinkApplicationConfiguration(ApplicationApplicationConfigurationFlinkApplicationConfigurationArgs.builder()
.checkpointConfiguration(ApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfigurationArgs.builder()
.configurationType("DEFAULT")
.build())
.monitoringConfiguration(ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationArgs.builder()
.configurationType("CUSTOM")
.logLevel("DEBUG")
.metricsLevel("TASK")
.build())
.parallelismConfiguration(ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationArgs.builder()
.autoScalingEnabled(true)
.configurationType("CUSTOM")
.parallelism(10)
.parallelismPerKpu(4)
.build())
.build())
.build())
.tags(Map.of("Environment", "test"))
.build());
}
}

SQL 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.kinesisanalyticsv2.Application;
import com.pulumi.aws.kinesisanalyticsv2.ApplicationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationApplicationCodeConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputParallelismArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParametersArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInputArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParametersArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSourceArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationCloudwatchLoggingOptionsArgs;
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 exampleApplication = new Application("exampleApplication", ApplicationArgs.builder()
.runtimeEnvironment("SQL-1_0")
.serviceExecutionRole(aws_iam_role.example().arn())
.applicationConfiguration(ApplicationApplicationConfigurationArgs.builder()
.applicationCodeConfiguration(ApplicationApplicationConfigurationApplicationCodeConfigurationArgs.builder()
.codeContent(ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs.builder()
.textContent("""
SELECT 1;
""")
.build())
.codeContentType("PLAINTEXT")
.build())
.sqlApplicationConfiguration(ApplicationApplicationConfigurationSqlApplicationConfigurationArgs.builder()
.input(ApplicationApplicationConfigurationSqlApplicationConfigurationInputArgs.builder()
.namePrefix("PREFIX_1")
.inputParallelism(ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputParallelismArgs.builder()
.count(3)
.build())
.inputSchema(ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaArgs.builder()
.recordColumns(
ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumnArgs.builder()
.name("COLUMN_1")
.sqlType("VARCHAR(8)")
.mapping("MAPPING-1")
.build(),
ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumnArgs.builder()
.name("COLUMN_2")
.sqlType("DOUBLE")
.build())
.recordEncoding("UTF-8")
.recordFormat(ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatArgs.builder()
.recordFormatType("CSV")
.mappingParameters(ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersArgs.builder()
.csvMappingParameters(ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParametersArgs.builder()
.recordColumnDelimiter(",")
.recordRowDelimiter("""
""")
.build())
.build())
.build())
.build())
.kinesisStreamsInput(ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInputArgs.builder()
.resourceArn(aws_kinesis_stream.example().arn())
.build())
.build())
.outputs(
ApplicationApplicationConfigurationSqlApplicationConfigurationOutputArgs.builder()
.name("OUTPUT_1")
.destinationSchema(ApplicationApplicationConfigurationSqlApplicationConfigurationOutputDestinationSchemaArgs.builder()
.recordFormatType("JSON")
.build())
.lambdaOutput(ApplicationApplicationConfigurationSqlApplicationConfigurationOutputLambdaOutputArgs.builder()
.resourceArn(aws_lambda_function.example().arn())
.build())
.build(),
ApplicationApplicationConfigurationSqlApplicationConfigurationOutputArgs.builder()
.name("OUTPUT_2")
.destinationSchema(ApplicationApplicationConfigurationSqlApplicationConfigurationOutputDestinationSchemaArgs.builder()
.recordFormatType("CSV")
.build())
.kinesisFirehoseOutput(ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisFirehoseOutputArgs.builder()
.resourceArn(aws_kinesis_firehose_delivery_stream.example().arn())
.build())
.build())
.referenceDataSource(ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceArgs.builder()
.tableName("TABLE-1")
.referenceSchema(ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaArgs.builder()
.recordColumns(ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordColumnArgs.builder()
.name("COLUMN_1")
.sqlType("INTEGER")
.build())
.recordFormat(ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatArgs.builder()
.recordFormatType("JSON")
.mappingParameters(ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersArgs.builder()
.jsonMappingParameters(ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParametersArgs.builder()
.recordRowPath("$")
.build())
.build())
.build())
.build())
.s3ReferenceDataSource(ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSourceArgs.builder()
.bucketArn(aws_s3_bucket.example().arn())
.fileKey("KEY-1")
.build())
.build())
.build())
.build())
.cloudwatchLoggingOptions(ApplicationCloudwatchLoggingOptionsArgs.builder()
.logStreamArn(exampleLogStream.arn())
.build())
.build());
}
}

VPC Configuration

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.s3.BucketV2;
import com.pulumi.aws.s3.BucketObjectv2;
import com.pulumi.aws.s3.BucketObjectv2Args;
import com.pulumi.aws.kinesisanalyticsv2.Application;
import com.pulumi.aws.kinesisanalyticsv2.ApplicationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationApplicationCodeConfigurationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocationArgs;
import com.pulumi.aws.kinesisanalyticsv2.inputs.ApplicationApplicationConfigurationVpcConfigurationArgs;
import com.pulumi.asset.FileAsset;
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 exampleBucketV2 = new BucketV2("exampleBucketV2");
var exampleBucketObjectv2 = new BucketObjectv2("exampleBucketObjectv2", BucketObjectv2Args.builder()
.bucket(exampleBucketV2.id())
.key("example-flink-application")
.source(new FileAsset("flink-app.jar"))
.build());
var exampleApplication = new Application("exampleApplication", ApplicationArgs.builder()
.runtimeEnvironment("FLINK-1_8")
.serviceExecutionRole(aws_iam_role.example().arn())
.applicationConfiguration(ApplicationApplicationConfigurationArgs.builder()
.applicationCodeConfiguration(ApplicationApplicationConfigurationApplicationCodeConfigurationArgs.builder()
.codeContent(ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs.builder()
.s3ContentLocation(ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocationArgs.builder()
.bucketArn(exampleBucketV2.arn())
.fileKey(exampleBucketObjectv2.key())
.build())
.build())
.codeContentType("ZIPFILE")
.build())
.vpcConfiguration(ApplicationApplicationConfigurationVpcConfigurationArgs.builder()
.securityGroupIds(
aws_security_group.example()[0].id(),
aws_security_group.example()[1].id())
.subnetIds(aws_subnet.example().id())
.build())
.build())
.build());
}
}

Import

aws_kinesisanalyticsv2_application can be imported by using the application ARN, e.g.,

$ pulumi import aws:kinesisanalyticsv2/application:Application example arn:aws:kinesisanalytics:us-west-2:123456789012:application/example-sql-application

Properties

Link copied to clipboard

The application's configuration

Link copied to clipboard
val arn: Output<String>

The ARN of the application.

Link copied to clipboard

A CloudWatch log stream to monitor application configuration errors.

Link copied to clipboard
val createTimestamp: Output<String>

The current timestamp when the application was created.

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

A summary description of the application.

Link copied to clipboard
val forceStop: Output<Boolean>?

Whether to force stop an unresponsive Flink-based application.

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

The current timestamp when the application was last updated.

Link copied to clipboard
val name: Output<String>

The name of the application.

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

The runtime environment for the application. Valid values: SQL-1_0, FLINK-1_6, FLINK-1_8, FLINK-1_11, FLINK-1_13, FLINK-1_15.

Link copied to clipboard

The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.

Link copied to clipboard

Whether to start or stop the application.

Link copied to clipboard
val status: Output<String>

The status of the application.

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

A map of tags to assign to the 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 versionId: Output<Int>

The current application version. Kinesis Data Analytics updates the version_id each time the application is updated.