private void createKinesisDataAnalyticsApplication()

in cdk/src/main/java/com/amazonaws/services/kinesisanalytics/AmazonKinesisDataAnalyticsApacheFlinkServerSentEventsSseCdkStack.java [183:217]


    private void createKinesisDataAnalyticsApplication() {
        final Application application = Application.Builder.create(this, "KinesisAnalyticsServerSentEventsApplication")
                .parallelismPerKpu(1)
                .parallelism(1)
                .runtime(Runtime.FLINK_1_11)
                .code(ApplicationCode.fromBucket(s3Bucket, filenameParam.getValueAsString()))
                .autoScalingEnabled(false)
                .build();

        // From https://docs.aws.amazon.com/kinesisanalytics/latest/java/vpc-permissions.html
        application.addToRolePolicy(PolicyStatement.Builder.create()
                .resources(List.of("*"))
                .actions(List.of(
                        "ec2:DescribeVpcs",
                        "ec2:DescribeSubnets",
                        "ec2:DescribeSecurityGroups",
                        "ec2:DescribeDhcpOptions"
                ))
                .effect(Effect.ALLOW)
                .build());
        application.addToRolePolicy(PolicyStatement.Builder.create()
                .resources(List.of("*"))
                .actions(List.of(
                        "ec2:CreateNetworkInterface",
                        "ec2:CreateNetworkInterfacePermission",
                        "ec2:DescribeNetworkInterfaces",
                        "ec2:DeleteNetworkInterface"
                ))
                .effect(Effect.ALLOW)
                .build());
        //Grant the application permission to publish SSE events to the data stream
        outputDataStream.grantReadWrite(application);

        createKinesisAnalyticsInit(application);
    }