class Application (construct)
Language | Type name |
---|---|
![]() | Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha.Application |
![]() | github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha/v2#Application |
![]() | software.amazon.awscdk.services.kinesisanalytics.flink.alpha.Application |
![]() | aws_cdk.aws_kinesisanalytics_flink_alpha.Application |
![]() | @aws-cdk/aws-kinesisanalytics-flink-alpha ยป Application |
Implements
IConstruct
, IDependable
, IResource
, IApplication
, IConnectable
, IGrantable
The L2 construct for Flink Kinesis Data Applications.
Example
declare const bucket: s3.Bucket;
const flinkApp = new flink.Application(this, 'Application', {
propertyGroups: {
FlinkApplicationProperties: {
inputStreamName: 'my-input-kinesis-stream',
outputStreamName: 'my-output-kinesis-stream',
},
},
// ...
runtime: flink.Runtime.FLINK_1_20,
code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),
});
Initializer
new Application(scope: Construct, id: string, props: ApplicationProps)
Parameters
- scope
Construct
- id
string
- props
Application
Props
Construct Props
Name | Type | Description |
---|---|---|
code | Application | The Flink code asset to run. |
runtime | Runtime | The Flink version to use for this application. |
application | string | A name for your Application that is unique to an AWS account. |
auto | boolean | Whether the Kinesis Data Analytics service can increase the parallelism of the application in response to resource usage. |
checkpoint | Duration | The interval between checkpoints. |
checkpointing | boolean | Whether checkpointing is enabled while your application runs. |
log | ILog | The log group to send log entries to. |
log | Log | The level of log verbosity from the Flink application. |
metrics | Metrics | Describes the granularity of the CloudWatch metrics for an application. |
min | Duration | The minimum amount of time in to wait after a checkpoint finishes to start a new checkpoint. |
parallelism? | number | The initial parallelism for the application. |
parallelism | number | The Flink parallelism allowed per Kinesis Processing Unit (KPU). |
property | { [string]: { [string]: string } } | Configuration PropertyGroups. |
removal | Removal | Provide a RemovalPolicy to override the default. |
role? | IRole | A role to use to grant permissions to your application. |
security | ISecurity [] | Security groups to use with a provided VPC. |
snapshots | boolean | Determines if Flink snapshots are enabled. |
vpc? | IVpc | Deploy the Flink application in a VPC. |
vpc | Subnet | Choose which VPC subnets to use. |
code
Type:
Application
The Flink code asset to run.
runtime
Type:
Runtime
The Flink version to use for this application.
applicationName?
Type:
string
(optional, default: CloudFormation-generated name)
A name for your Application that is unique to an AWS account.
autoScalingEnabled?
Type:
boolean
(optional, default: true)
Whether the Kinesis Data Analytics service can increase the parallelism of the application in response to resource usage.
checkpointInterval?
Type:
Duration
(optional, default: 1 minute)
The interval between checkpoints.
checkpointingEnabled?
Type:
boolean
(optional, default: true)
Whether checkpointing is enabled while your application runs.
logGroup?
Type:
ILog
(optional, default: CDK's default LogGroup)
The log group to send log entries to.
logLevel?
Type:
Log
(optional, default: FlinkLogLevel.INFO)
The level of log verbosity from the Flink application.
metricsLevel?
Type:
Metrics
(optional, default: MetricsLevel.APPLICATION)
Describes the granularity of the CloudWatch metrics for an application.
Use caution with Parallelism level metrics. Parallelism granularity logs metrics for each parallel thread and can quickly become expensive when parallelism is high (e.g. > 64).
minPauseBetweenCheckpoints?
Type:
Duration
(optional, default: 5 seconds)
The minimum amount of time in to wait after a checkpoint finishes to start a new checkpoint.
parallelism?
Type:
number
(optional, default: 1)
The initial parallelism for the application.
Kinesis Data Analytics can stop the app, increase the parallelism, and start the app again if autoScalingEnabled is true (the default value).
parallelismPerKpu?
Type:
number
(optional, default: 1)
The Flink parallelism allowed per Kinesis Processing Unit (KPU).
propertyGroups?
Type:
{ [string]: { [string]: string } }
(optional, default: No property group configuration provided to the Flink app)
Configuration PropertyGroups.
You can use these property groups to pass arbitrary runtime configuration values to your Flink app.
removalPolicy?
Type:
Removal
(optional, default: RemovalPolicy.DESTROY)
Provide a RemovalPolicy to override the default.
role?
Type:
IRole
(optional, default: a new Role will be created)
A role to use to grant permissions to your application.
Prefer omitting this property and using the default role.
securityGroups?
Type:
ISecurity
[]
(optional, default: a new security group is created for this application.)
Security groups to use with a provided VPC.
snapshotsEnabled?
Type:
boolean
(optional, default: true)
Determines if Flink snapshots are enabled.
vpc?
Type:
IVpc
(optional, default: no VPC)
Deploy the Flink application in a VPC.
vpcSubnets?
Type:
Subnet
(optional, default: SubnetType.PRIVATE_WITH_EGRESS subnets)
Choose which VPC subnets to use.
Properties
Name | Type | Description |
---|---|---|
application | string | The application ARN. |
application | string | The name of the Flink application. |
connections | Connections | The network connections associated with this resource. |
env | Resource | The environment this resource belongs to. |
grant | IPrincipal | The principal to grant permissions to. |
node | Node | The tree node. |
stack | Stack | The stack in which this resource is defined. |
role? | IRole | The application IAM role. |
applicationArn
Type:
string
The application ARN.
applicationName
Type:
string
The name of the Flink application.
connections
Type:
Connections
The network connections associated with this resource.
env
Type:
Resource
The environment this resource belongs to.
For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.
grantPrincipal
Type:
IPrincipal
The principal to grant permissions to.
node
Type:
Node
The tree node.
stack
Type:
Stack
The stack in which this resource is defined.
role?
Type:
IRole
(optional)
The application IAM role.
Methods
Name | Description |
---|---|
add | Implement the convenience IApplication.addToPrincipalPolicy method. |
apply | Apply the given removal policy to this resource. |
metric(metricName, props?) | Return a CloudWatch metric associated with this Flink application. |
metric | The time (in milliseconds) this task or operator is back pressured per second. |
metric | The time (in milliseconds) this task or operator is busy (neither idle nor back pressured) per second. |
metric | The overall percentage of CPU utilization across task managers. |
metric | The last watermark this application/operator/task/thread has received. |
metric | The last watermark this application/operator/task/thread has received. |
metric | The time elapsed during an outage for failing/recovering jobs. |
metric | The total number of times this job has fully restarted since it was submitted. |
metric | Overall heap memory utilization across task managers. |
metric | The time (in milliseconds) this task or operator is idle (has no data to process) per second. |
metric | The number of Kinesis Processing Units that are used to run your stream processing application. |
metric | The time it took to complete the last checkpoint. |
metric | The total size of the last checkpoint. |
metric | The total amount of managed memory. |
metric | The amount of managed memory currently used. |
metric | Derived from managedMemoryUsed/managedMemoryTotal. |
metric | The number of records this operator or task has dropped due to arriving late. |
metric | The total number of records this application, operator, or task has received. |
metric | The total number of records this application, operator or task has received per second. |
metric | The total number of records this application, operator or task has emitted. |
metric | The total number of records this application, operator or task has emitted per second. |
metric | The number of times checkpointing has failed. |
metric | The total number of old garbage collection operations that have occurred across all task managers. |
metric | The total time spent performing old garbage collection operations. |
metric | The total number of live threads used by the application. |
metric | The time that the job has been running without interruption. |
to | Returns a string representation of this construct. |
static from | Import an existing application defined outside of CDK code by applicationArn. |
static from | Import an existing application defined outside of CDK code. |
static from | Import an existing Flink application defined outside of CDK code by applicationName. |
addToRolePolicy(policyStatement)
public addToRolePolicy(policyStatement: PolicyStatement): boolean
Parameters
- policyStatement
Policy
Statement
Returns
boolean
Implement the convenience IApplication.addToPrincipalPolicy
method.
applyRemovalPolicy(policy)
public applyRemovalPolicy(policy: RemovalPolicy): void
Parameters
- policy
Removal
Policy
Apply the given removal policy to this resource.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY
), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN
).
metric(metricName, props?)
public metric(metricName: string, props?: MetricOptions): Metric
Parameters
- metricName
string
โ The name of the metric. - props
Metric
โ Customization properties.Options
Returns
Return a CloudWatch metric associated with this Flink application.
metricBackPressuredTimeMsPerSecond(props?)
public metricBackPressuredTimeMsPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time (in milliseconds) this task or operator is back pressured per second.
Units: Milliseconds
Reporting Level: Operator, Task, Parallelism
metricBusyTimePerMsPerSecond(props?)
public metricBusyTimePerMsPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time (in milliseconds) this task or operator is busy (neither idle nor back pressured) per second.
Can be NaN, if the value could not be calculated.
Units: Milliseconds
Reporting Level: Operator, Task, Parallelism
metricCpuUtilization(props?)
public metricCpuUtilization(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The overall percentage of CPU utilization across task managers.
For example, if there are five task managers, Kinesis Data Analytics publishes five samples of this metric per reporting interval.
Units: Percentage
Reporting Level: Application
metricCurrentInputWatermark(props?)
public metricCurrentInputWatermark(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The last watermark this application/operator/task/thread has received.
Units: Milliseconds
Reporting Level: Application, Operator, Task, Parallelism
metricCurrentOutputWatermark(props?)
public metricCurrentOutputWatermark(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The last watermark this application/operator/task/thread has received.
Units: Milliseconds
Reporting Level: Application, Operator, Task, Parallelism
metricDowntime(props?)
public metricDowntime(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time elapsed during an outage for failing/recovering jobs.
Units: Milliseconds
Reporting Level: Application
metricFullRestarts(props?)
public metricFullRestarts(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of times this job has fully restarted since it was submitted.
This metric does not measure fine-grained restarts.
Units: Count
Reporting Level: Application
metricHeapMemoryUtilization(props?)
public metricHeapMemoryUtilization(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
Overall heap memory utilization across task managers.
For example, if there are five task managers, Kinesis Data Analytics publishes five samples of this metric per reporting interval.
Units: Percentage
Reporting Level: Application
metricIdleTimeMsPerSecond(props?)
public metricIdleTimeMsPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time (in milliseconds) this task or operator is idle (has no data to process) per second.
Idle time excludes back pressured time, so if the task is back pressured it is not idle.
Units: Milliseconds
Reporting Level: Operator, Task, Parallelism
metricKpus(props?)
public metricKpus(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The number of Kinesis Processing Units that are used to run your stream processing application.
The average number of KPUs used each hour determines the billing for your application.
Units: Count
Reporting Level: Application
metricLastCheckpointDuration(props?)
public metricLastCheckpointDuration(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time it took to complete the last checkpoint.
Units: Milliseconds
Reporting Level: Application
metricLastCheckpointSize(props?)
public metricLastCheckpointSize(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total size of the last checkpoint.
Units: Bytes
Reporting Level: Application
metricManagedMemoryTotal(props?)
public metricManagedMemoryTotal(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total amount of managed memory.
Units: Bytes
Reporting Level: Application, Operator, Task, Parallelism
metricManagedMemoryUsed(props?)
public metricManagedMemoryUsed(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The amount of managed memory currently used.
Units: Bytes
Reporting Level: Application, Operator, Task, Parallelism
metricManagedMemoryUtilization(props?)
public metricManagedMemoryUtilization(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
Derived from managedMemoryUsed/managedMemoryTotal.
Units: Percentage
Reporting Level: Application, Operator, Task, Parallelism
metricNumLateRecordsDropped(props?)
public metricNumLateRecordsDropped(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The number of records this operator or task has dropped due to arriving late.
Units: Count
Reporting Level: Application, Operator, Task, Parallelism
metricNumRecordsIn(props?)
public metricNumRecordsIn(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of records this application, operator, or task has received.
Units: Count
Reporting Level: Application, Operator, Task, Parallelism
metricNumRecordsInPerSecond(props?)
public metricNumRecordsInPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of records this application, operator or task has received per second.
Units: Count/Second
Reporting Level: Application, Operator, Task, Parallelism
metricNumRecordsOut(props?)
public metricNumRecordsOut(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of records this application, operator or task has emitted.
Units: Count
Reporting Level: Application, Operator, Task, Parallelism
metricNumRecordsOutPerSecond(props?)
public metricNumRecordsOutPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of records this application, operator or task has emitted per second.
Units: Count/Second
Reporting Level: Application, Operator, Task, Parallelism
metricNumberOfFailedCheckpoints(props?)
public metricNumberOfFailedCheckpoints(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The number of times checkpointing has failed.
Units: Count
Reporting Level: Application
metricOldGenerationGCCount(props?)
public metricOldGenerationGCCount(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of old garbage collection operations that have occurred across all task managers.
Units: Count
Reporting Level: Application
metricOldGenerationGCTime(props?)
public metricOldGenerationGCTime(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total time spent performing old garbage collection operations.
Units: Milliseconds
Reporting Level: Application
metricThreadsCount(props?)
public metricThreadsCount(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of live threads used by the application.
Units: Count
Reporting Level: Application
metricUptime(props?)
public metricUptime(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time that the job has been running without interruption.
Units: Milliseconds
Reporting Level: Application
toString()
public toString(): string
Returns
string
Returns a string representation of this construct.
static fromApplicationArn(scope, id, applicationArn)
public static fromApplicationArn(scope: Construct, id: string, applicationArn: string): IApplication
Parameters
- scope
Construct
- id
string
- applicationArn
string
Returns
Import an existing application defined outside of CDK code by applicationArn.
static fromApplicationAttributes(scope, id, attrs)
public static fromApplicationAttributes(scope: Construct, id: string, attrs: ApplicationAttributes): IApplication
Parameters
- scope
Construct
- id
string
- attrs
Application
Attributes
Returns
Import an existing application defined outside of CDK code.
static fromApplicationName(scope, id, applicationName)
public static fromApplicationName(scope: Construct, id: string, applicationName: string): IApplication
Parameters
- scope
Construct
- id
string
- applicationName
string
Returns
Import an existing Flink application defined outside of CDK code by applicationName.