UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

38 lines 4.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GoodTypeScriptStack = void 0; const cdk = require("aws-cdk-lib"); const s3 = require("aws-cdk-lib/aws-s3"); /** * AWS CloudFormation Sample Template S3_Website_Bucket_With_Retain_On_Delete: Sample template showing how to create a publicly accessible S3 bucket configured for website access with a deletion policy of retain on delete. */ class GoodTypeScriptStack extends cdk.Stack { constructor(scope, id, props = {}) { super(scope, id, props); // Resources const s3Bucket = new s3.CfnBucket(this, 'S3Bucket', { accessControl: 'PublicRead', websiteConfiguration: { indexDocument: 'index.html', errorDocument: 'error.html', }, }); s3Bucket.cfnOptions.deletionPolicy = cdk.CfnDeletionPolicy.RETAIN; // Outputs this.websiteUrl = s3Bucket.attrWebsiteUrl; new cdk.CfnOutput(this, 'WebsiteURL', { description: 'URL for website hosted on S3', value: this.websiteUrl.toString(), }); this.s3BucketSecureUrl = [ 'https://', s3Bucket.attrDomainName, ].join(''); new cdk.CfnOutput(this, 'S3BucketSecureURL', { description: 'Name of S3 bucket to hold website content', value: this.s3BucketSecureUrl.toString(), }); } } exports.GoodTypeScriptStack = GoodTypeScriptStack; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzMy1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMseUNBQXlDO0FBS3pDOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxHQUFHLENBQUMsS0FBSztJQVVoRCxZQUFtQixLQUFjLEVBQUUsRUFBVSxFQUFFLFFBQWtDLEVBQUU7UUFDakYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsWUFBWTtRQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2xELGFBQWEsRUFBRSxZQUFZO1lBQzNCLG9CQUFvQixFQUFFO2dCQUNwQixhQUFhLEVBQUUsWUFBWTtnQkFDM0IsYUFBYSxFQUFFLFlBQVk7YUFDNUI7U0FDRixDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsVUFBVSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBRWxFLFVBQVU7UUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFDMUMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDcEMsV0FBVyxFQUFFLDhCQUE4QjtZQUMzQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVcsQ0FBQyxRQUFRLEVBQUU7U0FDbkMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixHQUFHO1lBQ3ZCLFVBQVU7WUFDVixRQUFRLENBQUMsY0FBYztTQUN4QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNYLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDM0MsV0FBVyxFQUFFLDJDQUEyQztZQUN4RCxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFrQixDQUFDLFFBQVEsRUFBRTtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF0Q0Qsa0RBc0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZFR5cGVTY3JpcHRTdGFja1Byb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xufVxuXG4vKipcbiAqIEFXUyBDbG91ZEZvcm1hdGlvbiBTYW1wbGUgVGVtcGxhdGUgUzNfV2Vic2l0ZV9CdWNrZXRfV2l0aF9SZXRhaW5fT25fRGVsZXRlOiBTYW1wbGUgdGVtcGxhdGUgc2hvd2luZyBob3cgdG8gY3JlYXRlIGEgcHVibGljbHkgYWNjZXNzaWJsZSBTMyBidWNrZXQgY29uZmlndXJlZCBmb3Igd2Vic2l0ZSBhY2Nlc3Mgd2l0aCBhIGRlbGV0aW9uIHBvbGljeSBvZiByZXRhaW4gb24gZGVsZXRlLlxuICovXG5leHBvcnQgY2xhc3MgR29vZFR5cGVTY3JpcHRTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIC8qKlxuICAgKiBVUkwgZm9yIHdlYnNpdGUgaG9zdGVkIG9uIFMzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2Vic2l0ZVVybDtcbiAgLyoqXG4gICAqIE5hbWUgb2YgUzMgYnVja2V0IHRvIGhvbGQgd2Vic2l0ZSBjb250ZW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNCdWNrZXRTZWN1cmVVcmw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQXBwLCBpZDogc3RyaW5nLCBwcm9wczogR29vZFR5cGVTY3JpcHRTdGFja1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIFJlc291cmNlc1xuICAgIGNvbnN0IHMzQnVja2V0ID0gbmV3IHMzLkNmbkJ1Y2tldCh0aGlzLCAnUzNCdWNrZXQnLCB7XG4gICAgICBhY2Nlc3NDb250cm9sOiAnUHVibGljUmVhZCcsXG4gICAgICB3ZWJzaXRlQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBpbmRleERvY3VtZW50OiAnaW5kZXguaHRtbCcsXG4gICAgICAgIGVycm9yRG9jdW1lbnQ6ICdlcnJvci5odG1sJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgczNCdWNrZXQuY2ZuT3B0aW9ucy5kZWxldGlvblBvbGljeSA9IGNkay5DZm5EZWxldGlvblBvbGljeS5SRVRBSU47XG5cbiAgICAvLyBPdXRwdXRzXG4gICAgdGhpcy53ZWJzaXRlVXJsID0gczNCdWNrZXQuYXR0cldlYnNpdGVVcmw7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ1dlYnNpdGVVUkwnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VSTCBmb3Igd2Vic2l0ZSBob3N0ZWQgb24gUzMnLFxuICAgICAgdmFsdWU6IHRoaXMud2Vic2l0ZVVybCEudG9TdHJpbmcoKSxcbiAgICB9KTtcbiAgICB0aGlzLnMzQnVja2V0U2VjdXJlVXJsID0gW1xuICAgICAgJ2h0dHBzOi8vJyxcbiAgICAgIHMzQnVja2V0LmF0dHJEb21haW5OYW1lLFxuICAgIF0uam9pbignJyk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ1MzQnVja2V0U2VjdXJlVVJMJywge1xuICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIFMzIGJ1Y2tldCB0byBob2xkIHdlYnNpdGUgY29udGVudCcsXG4gICAgICB2YWx1ZTogdGhpcy5zM0J1Y2tldFNlY3VyZVVybCEudG9TdHJpbmcoKSxcbiAgICB9KTtcbiAgfVxufVxuIl19