@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
35 lines • 4.58 kB
JavaScript
;
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("aws-cdk-lib");
const dsf = require("../../index");
const aws_cdk_lib_1 = require("aws-cdk-lib");
class ExampleCustomizationL2Stack extends cdk.Stack {
constructor(scope, id) {
super(scope, id);
/// !show
// Create a data lake using DSF on AWS L3 construct
const storage = new dsf.storage.DataLakeStorage(this, 'MyDataLakeStorage');
// Access the CDK L2 Bucket construct exposed by the L3 construct
const goldBucket = storage.goldBucket;
// Use the Bucket CDK API to modify the Bucket Policy and add cross account write access
goldBucket.addToResourcePolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({
actions: [
's3:GetObject',
's3:PutObject',
's3:DeleteObject',
's3:ListBucketMultipartUploads',
's3:ListMultipartUploadParts',
's3:AbortMultipartUpload',
's3:ListBucket',
],
effect: aws_cdk_lib_1.aws_iam.Effect.ALLOW,
principals: [new aws_cdk_lib_1.aws_iam.AccountPrincipal('123456789012')]
}));
/// !hide
}
}
const app = new cdk.App();
new ExampleCustomizationL2Stack(app, 'ExampleCustomizationL2Stack');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi1sMi5saXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZXhhbXBsZXMvY3VzdG9taXphdGlvbi1sMi5saXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7O0FBRXRDLG1DQUFtQztBQUVuQyxtQ0FBbUM7QUFDbkMsNkNBQXNDO0FBR3RDLE1BQU0sMkJBQTRCLFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDakQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixTQUFTO1FBQ1QsbURBQW1EO1FBQ25ELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFM0UsaUVBQWlFO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFFdEMsd0ZBQXdGO1FBQ3hGLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLHFCQUFPLENBQUMsZUFBZSxDQUFDO1lBQ3JELE9BQU8sRUFBRTtnQkFDUCxjQUFjO2dCQUNkLGNBQWM7Z0JBQ2QsaUJBQWlCO2dCQUNqQiwrQkFBK0I7Z0JBQy9CLDZCQUE2QjtnQkFDN0IseUJBQXlCO2dCQUN6QixlQUFlO2FBQ2hCO1lBQ0QsTUFBTSxFQUFFLHFCQUFPLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDNUIsVUFBVSxFQUFFLENBQUMsSUFBSSxxQkFBTyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzNELENBQ0osQ0FBQyxDQUFDO1FBQ0gsU0FBUztJQUNYLENBQUM7Q0FDRjtBQUVELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQUksMkJBQTJCLENBQUMsR0FBRyxFQUFFLDZCQUE2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGRzZiBmcm9tICcuLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBhd3NfaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cblxuY2xhc3MgRXhhbXBsZUN1c3RvbWl6YXRpb25MMlN0YWNrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8vICFzaG93XG4gICAgLy8gQ3JlYXRlIGEgZGF0YSBsYWtlIHVzaW5nIERTRiBvbiBBV1MgTDMgY29uc3RydWN0XG4gICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBkc2Yuc3RvcmFnZS5EYXRhTGFrZVN0b3JhZ2UodGhpcywgJ015RGF0YUxha2VTdG9yYWdlJyk7XG5cbiAgICAvLyBBY2Nlc3MgdGhlIENESyBMMiBCdWNrZXQgY29uc3RydWN0IGV4cG9zZWQgYnkgdGhlIEwzIGNvbnN0cnVjdFxuICAgIGNvbnN0IGdvbGRCdWNrZXQgPSBzdG9yYWdlLmdvbGRCdWNrZXQ7XG5cbiAgICAvLyBVc2UgdGhlIEJ1Y2tldCBDREsgQVBJIHRvIG1vZGlmeSB0aGUgQnVja2V0IFBvbGljeSBhbmQgYWRkIGNyb3NzIGFjY291bnQgd3JpdGUgYWNjZXNzXG4gICAgZ29sZEJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBhd3NfaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ3MzOkdldE9iamVjdCcsXG4gICAgICAgICAgICAnczM6UHV0T2JqZWN0JyxcbiAgICAgICAgICAgICdzMzpEZWxldGVPYmplY3QnLFxuICAgICAgICAgICAgJ3MzOkxpc3RCdWNrZXRNdWx0aXBhcnRVcGxvYWRzJyxcbiAgICAgICAgICAgICdzMzpMaXN0TXVsdGlwYXJ0VXBsb2FkUGFydHMnLFxuICAgICAgICAgICAgJ3MzOkFib3J0TXVsdGlwYXJ0VXBsb2FkJyxcbiAgICAgICAgICAgICdzMzpMaXN0QnVja2V0JyxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVmZmVjdDogYXdzX2lhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgcHJpbmNpcGFsczogW25ldyBhd3NfaWFtLkFjY291bnRQcmluY2lwYWwoJzEyMzQ1Njc4OTAxMicpXVxuICAgICAgICB9XG4gICAgKSk7XG4gICAgLy8vICFoaWRlXG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbm5ldyBFeGFtcGxlQ3VzdG9taXphdGlvbkwyU3RhY2soYXBwLCAnRXhhbXBsZUN1c3RvbWl6YXRpb25MMlN0YWNrJyk7Il19