@aws-solutions-constructs/core
Version:
Core CDK Construct for patterns library
59 lines • 8.81 kB
JavaScript
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
* with the License. A copy of the License is located at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildKinesisAnalyticsApp = buildKinesisAnalyticsApp;
/*
* The functions found here in the core library are for internal use and can be changed
* or removed outside of a major release. We recommend against calling them directly from client code.
*/
// Imports
const kinesisAnalytics = require("aws-cdk-lib/aws-kinesisanalytics");
const iam = require("aws-cdk-lib/aws-iam");
const defaults = require("./kinesis-analytics-defaults");
const utils_1 = require("./utils");
/**
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
*/
function buildKinesisAnalyticsApp(scope, props) {
// Setup the IAM role for Kinesis Analytics
const analyticsRole = new iam.Role(scope, 'KinesisAnalyticsRole', {
assumedBy: new iam.ServicePrincipal('kinesisanalytics.amazonaws.com'),
});
// Setup the IAM policy for Kinesis Analytics
const analyticsPolicy = new iam.Policy(scope, 'KinesisAnalyticsPolicy', {
statements: [
new iam.PolicyStatement({
actions: [
'firehose:DescribeDeliveryStream',
'firehose:Get*'
],
resources: [props.kinesisFirehose.attrArn]
})
]
});
// Attach policy to role
analyticsPolicy.attachToRole(analyticsRole);
// Setup the Kinesis application properties
const kinesisAnalyticsProps = (0, utils_1.overrideProps)(defaults.defaultCfnApplicationProps, props.kinesisAnalyticsProps);
kinesisAnalyticsProps.inputs[0].kinesisFirehoseInput = {
resourceArn: props.kinesisFirehose.attrArn,
roleArn: analyticsRole.roleArn
};
// Setup the Kinesis application and add dependencies
const kinesisAnalyticsApp = new kinesisAnalytics.CfnApplication(scope, 'KinesisAnalytics', kinesisAnalyticsProps);
kinesisAnalyticsApp.addDependency(analyticsPolicy.node.findChild('Resource'));
// Create the application and return
return kinesisAnalyticsApp;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy1hbmFseXRpY3MtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia2luZXNpcy1hbmFseXRpY3MtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFrQ0gsNERBbUNDO0FBbkVEOzs7R0FHRztBQUVILFVBQVU7QUFDVixxRUFBcUU7QUFFckUsMkNBQTJDO0FBQzNDLHlEQUF5RDtBQUN6RCxtQ0FBd0M7QUFtQnhDOztHQUVHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsS0FBZ0IsRUFBRSxLQUFvQztJQUU3RiwyQ0FBMkM7SUFDM0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtRQUNoRSxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLENBQUM7S0FDdEUsQ0FBQyxDQUFDO0lBRUgsNkNBQTZDO0lBQzdDLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLEVBQUU7UUFDdEUsVUFBVSxFQUFFO1lBQ1YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN0QixPQUFPLEVBQUU7b0JBQ1AsaUNBQWlDO29CQUNqQyxlQUFlO2lCQUNoQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQzthQUMzQyxDQUFDO1NBQ0g7S0FBQyxDQUFDLENBQUM7SUFFTix3QkFBd0I7SUFDeEIsZUFBZSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUU1QywyQ0FBMkM7SUFDM0MsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLHFCQUFhLEVBQUMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsR0FBRztRQUNyRCxXQUFXLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPO1FBQzFDLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTztLQUMvQixDQUFDO0lBRUYscURBQXFEO0lBQ3JELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDbEgsbUJBQW1CLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBa0IsQ0FBQyxDQUFDO0lBRS9GLG9DQUFvQztJQUNwQyxPQUFPLG1CQUFtQixDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCAqIGFzIGtpbmVzaXNBbmFseXRpY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWtpbmVzaXNhbmFseXRpY3MnO1xuaW1wb3J0ICogYXMga2luZXNpc0ZpcmVob3NlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1raW5lc2lzZmlyZWhvc2UnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSAnLi9raW5lc2lzLWFuYWx5dGljcy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZEtpbmVzaXNBbmFseXRpY3NBcHBQcm9wcyB7XG4gICAgLyoqXG4gICAgICogQSBLaW5lc2lzIERhdGEgRmlyZWhvc2UgZm9yIHRoZSBLaW5lc2lzIFN0cmVhbXMgYXBwbGljYXRpb24gdG8gY29ubmVjdCB0by5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGtpbmVzaXNGaXJlaG9zZToga2luZXNpc0ZpcmVob3NlLkNmbkRlbGl2ZXJ5U3RyZWFtXG4gICAvKipcbiAgICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBLaW5lc2lzIGFuYWx5dGljcyBhcHAuXG4gICAgKlxuICAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAgKi9cbiAgIHJlYWRvbmx5IGtpbmVzaXNBbmFseXRpY3NQcm9wcz86IGtpbmVzaXNBbmFseXRpY3MuQ2ZuQXBwbGljYXRpb25Qcm9wcyB8IGFueVxuIH1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRLaW5lc2lzQW5hbHl0aWNzQXBwKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBCdWlsZEtpbmVzaXNBbmFseXRpY3NBcHBQcm9wcyk6IGtpbmVzaXNBbmFseXRpY3MuQ2ZuQXBwbGljYXRpb24ge1xuXG4gIC8vIFNldHVwIHRoZSBJQU0gcm9sZSBmb3IgS2luZXNpcyBBbmFseXRpY3NcbiAgY29uc3QgYW5hbHl0aWNzUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgJ0tpbmVzaXNBbmFseXRpY3NSb2xlJywge1xuICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdraW5lc2lzYW5hbHl0aWNzLmFtYXpvbmF3cy5jb20nKSxcbiAgfSk7XG5cbiAgLy8gU2V0dXAgdGhlIElBTSBwb2xpY3kgZm9yIEtpbmVzaXMgQW5hbHl0aWNzXG4gIGNvbnN0IGFuYWx5dGljc1BvbGljeSA9IG5ldyBpYW0uUG9saWN5KHNjb3BlLCAnS2luZXNpc0FuYWx5dGljc1BvbGljeScsIHtcbiAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnZmlyZWhvc2U6RGVzY3JpYmVEZWxpdmVyeVN0cmVhbScsXG4gICAgICAgICAgJ2ZpcmVob3NlOkdldConXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW3Byb3BzLmtpbmVzaXNGaXJlaG9zZS5hdHRyQXJuXVxuICAgICAgfSlcbiAgICBdfSk7XG5cbiAgLy8gQXR0YWNoIHBvbGljeSB0byByb2xlXG4gIGFuYWx5dGljc1BvbGljeS5hdHRhY2hUb1JvbGUoYW5hbHl0aWNzUm9sZSk7XG5cbiAgLy8gU2V0dXAgdGhlIEtpbmVzaXMgYXBwbGljYXRpb24gcHJvcGVydGllc1xuICBjb25zdCBraW5lc2lzQW5hbHl0aWNzUHJvcHMgPSBvdmVycmlkZVByb3BzKGRlZmF1bHRzLmRlZmF1bHRDZm5BcHBsaWNhdGlvblByb3BzLCBwcm9wcy5raW5lc2lzQW5hbHl0aWNzUHJvcHMpO1xuICBraW5lc2lzQW5hbHl0aWNzUHJvcHMuaW5wdXRzWzBdLmtpbmVzaXNGaXJlaG9zZUlucHV0ID0ge1xuICAgIHJlc291cmNlQXJuOiBwcm9wcy5raW5lc2lzRmlyZWhvc2UuYXR0ckFybixcbiAgICByb2xlQXJuOiBhbmFseXRpY3NSb2xlLnJvbGVBcm5cbiAgfTtcblxuICAvLyBTZXR1cCB0aGUgS2luZXNpcyBhcHBsaWNhdGlvbiBhbmQgYWRkIGRlcGVuZGVuY2llc1xuICBjb25zdCBraW5lc2lzQW5hbHl0aWNzQXBwID0gbmV3IGtpbmVzaXNBbmFseXRpY3MuQ2ZuQXBwbGljYXRpb24oc2NvcGUsICdLaW5lc2lzQW5hbHl0aWNzJywga2luZXNpc0FuYWx5dGljc1Byb3BzKTtcbiAga2luZXNpc0FuYWx5dGljc0FwcC5hZGREZXBlbmRlbmN5KGFuYWx5dGljc1BvbGljeS5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBpYW0uQ2ZuUG9saWN5KTtcblxuICAvLyBDcmVhdGUgdGhlIGFwcGxpY2F0aW9uIGFuZCByZXR1cm5cbiAgcmV0dXJuIGtpbmVzaXNBbmFseXRpY3NBcHA7XG59Il19
;