See: Description
| Interface | Description |
|---|---|
| ApplicationCodeConfig |
(experimental) The return type of
ApplicationCode.bind. |
| ApplicationProps |
(experimental) Props for creating an Application construct.
|
| IApplication |
(experimental) An interface expressing the public properties on both an imported and CDK-created Flink application.
|
| IApplication.Jsii$Default |
Internal default implementation for
IApplication. |
| PropertyGroups |
(experimental) Interface for building AWS::KinesisAnalyticsV2::Application PropertyGroup configuration.
|
| Class | Description |
|---|---|
| Application |
(experimental) The L2 construct for Flink Kinesis Data Applications.
|
| Application.Builder |
(experimental) A fluent builder for
Application. |
| ApplicationCode |
(experimental) Code configuration providing the location to a Flink application JAR file.
|
| ApplicationCodeConfig.Builder |
A builder for
ApplicationCodeConfig |
| ApplicationCodeConfig.Jsii$Proxy |
An implementation for
ApplicationCodeConfig |
| ApplicationProps.Builder |
A builder for
ApplicationProps |
| ApplicationProps.Jsii$Proxy |
An implementation for
ApplicationProps |
| IApplication.Jsii$Proxy |
A proxy class which represents a concrete javascript instance of this type.
|
| PropertyGroups.Builder |
A builder for
PropertyGroups |
| PropertyGroups.Jsii$Proxy |
An implementation for
PropertyGroups |
| Runtime |
(experimental) Available Flink runtimes for Kinesis Analytics.
|
| Enum | Description |
|---|---|
| LogLevel |
(experimental) Available log levels for Flink applications.
|
| MetricsLevel |
(experimental) Granularity of metrics sent to CloudWatch.
|
This package provides constructs for creating Kinesis Analytics Flink applications. To learn more about using using managed Flink applications, see the AWS developer guide.
To create a new Flink application, use the Application construct:
import path.*;
import software.amazon.awscdk.core.*;
import software.amazon.awscdk.core.*;
import software.amazon.awscdk.services.cloudwatch.*;
App app = new App();
Stack stack = new Stack(app, "FlinkAppTest");
Application flinkApp = Application.Builder.create(stack, "App")
.code(ApplicationCode.fromAsset(join(__dirname, "code-asset")))
.runtime(Runtime.FLINK_1_11)
.build();
Alarm.Builder.create(stack, "Alarm")
.metric(flinkApp.metricFullRestarts())
.evaluationPeriods(1)
.threshold(3)
.build();
app.synth();
The code property can use fromAsset as shown above to reference a local jar
file in s3 or fromBucket to reference a file in s3.
import path.*;
import software.amazon.awscdk.services.s3.assets.*;
import software.amazon.awscdk.core.*;
import software.amazon.awscdk.core.*;
App app = new App();
Stack stack = new Stack(app, "FlinkAppCodeFromBucketTest");
Asset asset = Asset.Builder.create(stack, "CodeAsset")
.path(join(__dirname, "code-asset"))
.build();
IBucket bucket = asset.getBucket();
String fileKey = asset.getS3ObjectKey();
Application.Builder.create(stack, "App")
.code(ApplicationCode.fromBucket(bucket, fileKey))
.runtime(Runtime.FLINK_1_11)
.build();
app.synth();
The propertyGroups property provides a way of passing arbitrary runtime
properties to your Flink application. You can use the
aws-kinesisanalytics-runtime library to retrieve these
properties.
Bucket bucket;
Application flinkApp = Application.Builder.create(this, "Application")
.propertyGroups(PropertyGroups.builder()
.FlinkApplicationProperties(Map.of(
"inputStreamName", "my-input-kinesis-stream",
"outputStreamName", "my-output-kinesis-stream"))
.build())
// ...
.runtime(Runtime.FLINK_1_13)
.code(ApplicationCode.fromBucket(bucket, "my-app.jar"))
.build();
Flink applications also have specific configuration for passing parameters when the Flink job starts. These include parameters for checkpointing, snapshotting, monitoring, and parallelism.
Bucket bucket;
Application flinkApp = Application.Builder.create(this, "Application")
.code(ApplicationCode.fromBucket(bucket, "my-app.jar"))
.runtime(Runtime.FLINK_1_13)
.checkpointingEnabled(true) // default is true
.checkpointInterval(Duration.seconds(30)) // default is 1 minute
.minPauseBetweenCheckpoints(Duration.seconds(10)) // default is 5 seconds
.logLevel(LogLevel.ERROR) // default is INFO
.metricsLevel(MetricsLevel.PARALLELISM) // default is APPLICATION
.autoScalingEnabled(false) // default is true
.parallelism(32) // default is 1
.parallelismPerKpu(2) // default is 1
.snapshotsEnabled(false) // default is true
.logGroup(new LogGroup(this, "LogGroup"))
.build();
Copyright © 2022. All rights reserved.