aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
38 lines • 4.95 kB
JavaScript
;
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