# !/usr/bin/env python3 # Copyright Amazon.com, Inc. and its affiliates. All Rights Reserved. # SPDX-License-Identifier: MIT-0 from aws_cdk import core from pathlib import Path from stacks.amazon_timestream_stack import AmazonTimeStreamStack from stacks.grafana.grafana_stack import GrafanaStack from stacks.kinesis.amazon_kinesis_analytics_source_stack import KinesisAnalyticsSource from stacks.kinesis.amazon_kinesis_analytics_stack import KinesisAnalyticsStack from stacks.kinesis.amazon_kinesis_stream_stack import KinesisStreamStack from stacks.sample_kinesis_stream_producer.sample_kinesis_stream_producer_stack import SampleKinesisStreamProducerStack app = core.App() kda_path = app.node.try_get_context("kda_path") if kda_path is None: kda_path = "../analytics/target/analytics-timestream-java-sample-1.0.jar" print("No context defined variable kda_path for Amazon Kinesis Data Analytics for Apache Flink " "application jar file path defined. Will use default path <" + kda_path + ">.") if not Path(kda_path).is_file(): print("Warning, Apache Flink application jar file not found: <" + kda_path + ">. Make sure file exists or you've built default application, " "check analytics/README.md or analytics-kotlin/README.md for more information") timestream_stack = AmazonTimeStreamStack(app, "amazon-timestream") kinesis_stream = KinesisStreamStack(app, 'amazon-kinesis-stream') kinesis_analytics_source_stack = KinesisAnalyticsSource(app, "flink-source", stream=kinesis_stream.stream, kda_path=kda_path, database=timestream_stack.database, table=timestream_stack.table) stream_producer_stack = SampleKinesisStreamProducerStack(app, "sample-kinesis-stream-producer", stream=kinesis_stream.stream) kinesis_analytics_stack = KinesisAnalyticsStack(app, "amazon-kinesis-analytics", stream=kinesis_stream.stream, db_name=timestream_stack.database.database_name, table_name=timestream_stack.table.table_name, kda_role=kinesis_analytics_source_stack.kda_role, log_group_name=kinesis_analytics_source_stack.log_group_name, log_stream_name=kinesis_analytics_source_stack.log_stream_name, asset=kinesis_analytics_source_stack.asset) kinesis_analytics_stack.add_dependency(kinesis_analytics_source_stack) grafana_stack = GrafanaStack(app, "grafana", database=timestream_stack.database, table=timestream_stack.table) app.synth()