@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
31 lines • 4.36 kB
JavaScript
;
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