UNPKG

@cdklabs/aws-data-solutions-framework

Version:
31 lines 4.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const aws_cdk_lib_1 = require("aws-cdk-lib"); const lib_1 = require("../lib"); const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager"); const aws_ec2_1 = require("aws-cdk-lib/aws-ec2"); class ExampleRedshiftDataStack extends aws_cdk_lib_1.Stack { constructor(scope, id) { super(scope, id); /// !show const redshiftAdminSecret = aws_secretsmanager_1.Secret.fromSecretPartialArn(this, 'RedshiftAdminCredentials', 'arn:aws:secretsmanager:us-east-1:XXXXXXXX:secret:YYYYYYYY'); const redshiftVpc = aws_ec2_1.Vpc.fromLookup(this, 'RedshiftVpc', { vpcId: 'XXXXXXXX', }); const dataAccess = new lib_1.RedshiftData(this, 'RedshiftDataAccess', { workgroupId: 'XXXXXXXXXXXXXXX', secret: redshiftAdminSecret, vpc: redshiftVpc, subnets: redshiftVpc.selectSubnets({ subnetGroupName: 'YYYYYYYY' }), createInterfaceVpcEndpoint: true, executionTimeout: aws_cdk_lib_1.Duration.minutes(10), }); dataAccess.runCustomSQL('ExampleSql', 'default', 'SHOW DATABASES'); /// !hide } } const app = new aws_cdk_lib_1.App(); new ExampleRedshiftDataStack(app, "ExampleRedshiftDataStack"); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc2hpZnQtZGF0YS1hY2Nlc3MtYnlvYy5saXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uc3VtcHRpb24vZXhhbXBsZXMvcmVkc2hpZnQtZGF0YS1hY2Nlc3MtYnlvYy5saXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2Q0FBbUQ7QUFFbkQsZ0NBQXNDO0FBQ3RDLHVFQUF3RDtBQUN4RCxpREFBMEM7QUFHMUMsTUFBTSx3QkFBeUIsU0FBUSxtQkFBSztJQUN4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLFNBQVM7UUFDVCxNQUFNLG1CQUFtQixHQUFHLDJCQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFLDJEQUEyRCxDQUFDLENBQUM7UUFFdkosTUFBTSxXQUFXLEdBQUcsYUFBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3RELEtBQUssRUFBRSxVQUFVO1NBQ2xCLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQVksQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDOUQsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixNQUFNLEVBQUUsbUJBQW1CO1lBQzNCLEdBQUcsRUFBRSxXQUFXO1lBQ2hCLE9BQU8sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDO2dCQUNqQyxlQUFlLEVBQUUsVUFBVTthQUM1QixDQUFDO1lBQ0YsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyxnQkFBZ0IsRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDdkMsQ0FBQyxDQUFBO1FBRUYsVUFBVSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbkUsU0FBUztJQUNYLENBQUM7Q0FDRjtBQUNILE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFBO0FBQ3JCLElBQUksd0JBQXdCLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHAsIER1cmF0aW9uLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFJlZHNoaWZ0RGF0YSB9IGZyb20gXCIuLi9saWJcIjtcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIjtcbmltcG9ydCB7IFZwYyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5cblxuY2xhc3MgRXhhbXBsZVJlZHNoaWZ0RGF0YVN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgICAgLy8vICFzaG93XG4gICAgICBjb25zdCByZWRzaGlmdEFkbWluU2VjcmV0ID0gU2VjcmV0LmZyb21TZWNyZXRQYXJ0aWFsQXJuKHRoaXMsICdSZWRzaGlmdEFkbWluQ3JlZGVudGlhbHMnLCAnYXJuOmF3czpzZWNyZXRzbWFuYWdlcjp1cy1lYXN0LTE6WFhYWFhYWFg6c2VjcmV0OllZWVlZWVlZJyk7XG5cbiAgICAgIGNvbnN0IHJlZHNoaWZ0VnBjID0gVnBjLmZyb21Mb29rdXAodGhpcywgJ1JlZHNoaWZ0VnBjJywge1xuICAgICAgICB2cGNJZDogJ1hYWFhYWFhYJyxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBkYXRhQWNjZXNzID0gbmV3IFJlZHNoaWZ0RGF0YSh0aGlzLCAnUmVkc2hpZnREYXRhQWNjZXNzJywge1xuICAgICAgICB3b3JrZ3JvdXBJZDogJ1hYWFhYWFhYWFhYWFhYWCcsXG4gICAgICAgIHNlY3JldDogcmVkc2hpZnRBZG1pblNlY3JldCxcbiAgICAgICAgdnBjOiByZWRzaGlmdFZwYyxcbiAgICAgICAgc3VibmV0czogcmVkc2hpZnRWcGMuc2VsZWN0U3VibmV0cyh7XG4gICAgICAgICAgc3VibmV0R3JvdXBOYW1lOiAnWVlZWVlZWVknXG4gICAgICAgIH0pLFxuICAgICAgICBjcmVhdGVJbnRlcmZhY2VWcGNFbmRwb2ludDogdHJ1ZSxcbiAgICAgICAgZXhlY3V0aW9uVGltZW91dDogRHVyYXRpb24ubWludXRlcygxMCksXG4gICAgICB9KVxuXG4gICAgICBkYXRhQWNjZXNzLnJ1bkN1c3RvbVNRTCgnRXhhbXBsZVNxbCcsICdkZWZhdWx0JywgJ1NIT1cgREFUQUJBU0VTJyk7XG4gICAgICAvLy8gIWhpZGVcbiAgICB9XG4gIH1cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKVxubmV3IEV4YW1wbGVSZWRzaGlmdERhdGFTdGFjayhhcHAsIFwiRXhhbXBsZVJlZHNoaWZ0RGF0YVN0YWNrXCIpIl19