@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
31 lines • 4.27 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_s3_1 = require("aws-cdk-lib/aws-s3");
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
class ExampleVpcS3DataCopyStack extends cdk.Stack {
constructor(scope, id) {
super(scope, id);
const sourceBucket = aws_s3_1.Bucket.fromBucketName(this, 'sourceBucket', 'nyc-tlc');
const targetBucket = aws_s3_1.Bucket.fromBucketName(this, 'destinationBucket', 'staging-bucket');
/// !show
const vpc = aws_ec2_1.Vpc.fromLookup(this, 'Vpc', { vpcName: 'my-vpc' });
const subnets = vpc.selectSubnets({ subnetType: aws_ec2_1.SubnetType.PRIVATE_WITH_EGRESS });
new dsf.utils.S3DataCopy(this, 'S3DataCopy', {
sourceBucket,
sourceBucketPrefix: 'trip data/',
sourceBucketRegion: 'us-east-1',
targetBucket,
targetBucketPrefix: 'staging-data/',
vpc,
subnets,
});
/// !hide
}
}
const app = new cdk.App();
new ExampleVpcS3DataCopyStack(app, 'ExampleVpcS3DataCopy');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtZGF0YS1jb3B5LXZwYy5saXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZXhhbXBsZXMvczMtZGF0YS1jb3B5LXZwYy5saXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7O0FBRXRDLG1DQUFtQztBQUVuQyxtQ0FBbUM7QUFDbkMsK0NBQTRDO0FBQzVDLGlEQUFzRDtBQUd0RCxNQUFNLHlCQUEwQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxZQUFZLEdBQUcsZUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sWUFBWSxHQUFHLGVBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFeEYsU0FBUztRQUNULE1BQU0sR0FBRyxHQUFHLGFBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBQyxVQUFVLEVBQUUsb0JBQVUsQ0FBQyxtQkFBbUIsRUFBQyxDQUFDLENBQUM7UUFFaEYsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzNDLFlBQVk7WUFDWixrQkFBa0IsRUFBRSxZQUFZO1lBQ2hDLGtCQUFrQixFQUFFLFdBQVc7WUFDL0IsWUFBWTtZQUNaLGtCQUFrQixFQUFFLGVBQWU7WUFDbkMsR0FBRztZQUNILE9BQU87U0FDUixDQUFDLENBQUM7UUFDSCxTQUFTO0lBQ1gsQ0FBQztDQUNGO0FBR0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDMUIsSUFBSSx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgZHNmIGZyb20gJy4uLy4uL2luZGV4JztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBTdWJuZXRUeXBlLCBWcGMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcblxuXG5jbGFzcyBFeGFtcGxlVnBjUzNEYXRhQ29weVN0YWNrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgXG4gICAgY29uc3Qgc291cmNlQnVja2V0ID0gQnVja2V0LmZyb21CdWNrZXROYW1lKHRoaXMsICdzb3VyY2VCdWNrZXQnLCAnbnljLXRsYycpO1xuICAgIGNvbnN0IHRhcmdldEJ1Y2tldCA9IEJ1Y2tldC5mcm9tQnVja2V0TmFtZSh0aGlzLCAnZGVzdGluYXRpb25CdWNrZXQnLCAnc3RhZ2luZy1idWNrZXQnKTtcbiAgICBcbiAgICAvLy8gIXNob3dcbiAgICBjb25zdCB2cGMgPSBWcGMuZnJvbUxvb2t1cCh0aGlzLCAnVnBjJywgeyB2cGNOYW1lOiAnbXktdnBjJ30pO1xuICAgIGNvbnN0IHN1Ym5ldHMgPSB2cGMuc2VsZWN0U3VibmV0cyh7c3VibmV0VHlwZTogU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTfSk7XG4gICAgXG4gICAgbmV3IGRzZi51dGlscy5TM0RhdGFDb3B5KHRoaXMsICdTM0RhdGFDb3B5Jywge1xuICAgICAgc291cmNlQnVja2V0LFxuICAgICAgc291cmNlQnVja2V0UHJlZml4OiAndHJpcCBkYXRhLycsXG4gICAgICBzb3VyY2VCdWNrZXRSZWdpb246ICd1cy1lYXN0LTEnLFxuICAgICAgdGFyZ2V0QnVja2V0LFxuICAgICAgdGFyZ2V0QnVja2V0UHJlZml4OiAnc3RhZ2luZy1kYXRhLycsXG4gICAgICB2cGMsXG4gICAgICBzdWJuZXRzLFxuICAgIH0pO1xuICAgIC8vLyAhaGlkZVxuICB9XG59XG5cblxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbm5ldyBFeGFtcGxlVnBjUzNEYXRhQ29weVN0YWNrKGFwcCwgJ0V4YW1wbGVWcGNTM0RhdGFDb3B5Jyk7Il19