@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
29 lines • 4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const aws_cdk_lib_1 = require("aws-cdk-lib");
const dsf = require("../../index");
const aws_s3_1 = require("aws-cdk-lib/aws-s3");
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
/// !show
class ExampleRedshiftServerlessNamespaceRolesStack extends aws_cdk_lib_1.Stack {
constructor(scope, id) {
super(scope, id);
const bucket = new aws_s3_1.Bucket(this, "ExampleBucket");
const ingestionRole = new aws_iam_1.Role(this, "IngestionRole", {
assumedBy: new aws_iam_1.ServicePrincipal("redshift.amazonaws.com"),
managedPolicies: [
aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("AmazonRedshiftAllCommandsFullAccess")
]
});
bucket.grantRead(ingestionRole);
new dsf.consumption.RedshiftServerlessNamespace(this, "RedshiftServerlessNamespace", {
dbName: "database",
name: "example-namespace",
defaultIAMRole: ingestionRole
});
}
}
/// !hide
const app = new aws_cdk_lib_1.App();
new ExampleRedshiftServerlessNamespaceRolesStack(app, "ExampleRedshiftServerlessNamespaceRolesStack");
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc2hpZnQtc2VydmVybGVzcy1uYW1lc3BhY2Utcm9sZXMubGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN1bXB0aW9uL2V4YW1wbGVzL3JlZHNoaWZ0LXNlcnZlcmxlc3MtbmFtZXNwYWNlLXJvbGVzLmxpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUF5QztBQUV6QyxtQ0FBbUM7QUFDbkMsK0NBQTRDO0FBQzVDLGlEQUE0RTtBQUU1RSxTQUFTO0FBQ1QsTUFBTSw0Q0FBNkMsU0FBUSxtQkFBSztJQUM5RCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQTtRQUVoRCxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ3BELFNBQVMsRUFBRSxJQUFJLDBCQUFnQixDQUFDLHdCQUF3QixDQUFDO1lBQ3pELGVBQWUsRUFBRTtnQkFDZix1QkFBYSxDQUFDLHdCQUF3QixDQUFDLHFDQUFxQyxDQUFDO2FBQzlFO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUUvQixJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFO1lBQ25GLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLElBQUksRUFBRSxtQkFBbUI7WUFDekIsY0FBYyxFQUFFLGFBQWE7U0FDOUIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBQ0QsU0FBUztBQUNULE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFBO0FBQ3JCLElBQUksNENBQTRDLENBQUMsR0FBRyxFQUFFLDhDQUE4QyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHAsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgZHNmIGZyb20gJy4uLy4uL2luZGV4JztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7IE1hbmFnZWRQb2xpY3ksIFJvbGUsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG4vLy8gIXNob3dcbmNsYXNzIEV4YW1wbGVSZWRzaGlmdFNlcnZlcmxlc3NOYW1lc3BhY2VSb2xlc1N0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuICAgIFxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgXCJFeGFtcGxlQnVja2V0XCIpXG4gICAgXG4gICAgY29uc3QgaW5nZXN0aW9uUm9sZSA9IG5ldyBSb2xlKHRoaXMsIFwiSW5nZXN0aW9uUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwicmVkc2hpZnQuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcIkFtYXpvblJlZHNoaWZ0QWxsQ29tbWFuZHNGdWxsQWNjZXNzXCIpXG4gICAgICBdXG4gICAgfSlcbiAgICBcbiAgICBidWNrZXQuZ3JhbnRSZWFkKGluZ2VzdGlvblJvbGUpXG4gICAgXG4gICAgbmV3IGRzZi5jb25zdW1wdGlvbi5SZWRzaGlmdFNlcnZlcmxlc3NOYW1lc3BhY2UodGhpcywgXCJSZWRzaGlmdFNlcnZlcmxlc3NOYW1lc3BhY2VcIiwge1xuICAgICAgZGJOYW1lOiBcImRhdGFiYXNlXCIsXG4gICAgICBuYW1lOiBcImV4YW1wbGUtbmFtZXNwYWNlXCIsXG4gICAgICBkZWZhdWx0SUFNUm9sZTogaW5nZXN0aW9uUm9sZSBcbiAgICB9KVxuICB9XG59XG4vLy8gIWhpZGVcbmNvbnN0IGFwcCA9IG5ldyBBcHAoKVxubmV3IEV4YW1wbGVSZWRzaGlmdFNlcnZlcmxlc3NOYW1lc3BhY2VSb2xlc1N0YWNrKGFwcCwgXCJFeGFtcGxlUmVkc2hpZnRTZXJ2ZXJsZXNzTmFtZXNwYWNlUm9sZXNTdGFja1wiKSJdfQ==