cdk-emrserverless-with-delta-lake
Version:
A construct for the quick demo of EMR Serverless.
55 lines • 9.62 kB
JavaScript
;
var _a, _b;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EmrServerlessBucket = exports.WorkSpaceBucket = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdk = require("aws-cdk-lib");
const s3 = require("aws-cdk-lib/aws-s3");
const constructs_1 = require("constructs");
class WorkSpaceBucket extends constructs_1.Construct {
constructor(scope, name, props) {
super(scope, name);
const removalPolicy = (props !== undefined) ? props.removalPolicy : cdk.RemovalPolicy.DESTROY;
const bucketName = (props !== undefined) ? props.bucketName : `emr-studio-workspace-bucket-${cdk.Aws.ACCOUNT_ID}`;
this.bucketEntity = new s3.Bucket(this, 'WorkSpaceBucket', {
bucketName: bucketName,
removalPolicy: removalPolicy,
autoDeleteObjects: (removalPolicy !== cdk.RemovalPolicy.RETAIN) ? true : false,
blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
});
new cdk.CfnOutput(this, 'OWorkspaceBucket', { value: this.bucketEntity.bucketArn, description: 'The ARN of the workspace bucket.' });
}
}
exports.WorkSpaceBucket = WorkSpaceBucket;
_a = JSII_RTTI_SYMBOL_1;
WorkSpaceBucket[_a] = { fqn: "cdk-emrserverless-with-delta-lake.WorkSpaceBucket", version: "2.0.823" };
/**
* Creates a bucket for EMR Serverless applications.
*
* ```ts
* const emrServerlessBucket = new EmrServerlessBucket(this, 'EmrServerless');
* ```
*/
class EmrServerlessBucket extends constructs_1.Construct {
constructor(scope, name, props) {
super(scope, name);
const removalPolicy = (props !== undefined) ? props.removalPolicy : cdk.RemovalPolicy.DESTROY;
if (props !== undefined) {
if (props.removalPolicy == undefined) {
console.log('`removalPolicy` is not set for the EMR Serverless bucket, therefore, the default removal policy, DESTROY, is set.');
}
}
const bucketName = (props !== undefined) ? props.bucketName : `emr-serverless-${cdk.Aws.ACCOUNT_ID}`;
this.bucketEntity = new s3.Bucket(this, 'Bucket', {
bucketName: bucketName,
removalPolicy: removalPolicy,
autoDeleteObjects: (removalPolicy !== cdk.RemovalPolicy.RETAIN) ? true : false,
blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
});
new cdk.CfnOutput(this, 'OEmrServerlessBucket', { value: this.bucketEntity.bucketArn, description: 'The ARN of the EMR Serverless bucket.' });
}
}
exports.EmrServerlessBucket = EmrServerlessBucket;
_b = JSII_RTTI_SYMBOL_1;
EmrServerlessBucket[_b] = { fqn: "cdk-emrserverless-with-delta-lake.EmrServerlessBucket", version: "2.0.823" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idWNrZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlDQUF5QztBQUN6QywyQ0FBdUM7QUFpQnZDLE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQUU1QyxZQUFZLEtBQWdCLEVBQUUsSUFBWSxFQUFFLEtBQTRCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQzlGLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDekQsVUFBVSxFQUFFLFVBQVU7WUFDdEIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsaUJBQWlCLEVBQUUsQ0FBQyxhQUFhLEtBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzlFLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTO1NBQ2xELENBQUMsQ0FBQztRQUNILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFLENBQUMsQ0FBQztJQUN2SSxDQUFDOztBQWJILDBDQWNDOzs7QUFvQkQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxzQkFBUztJQUVoRCxZQUFZLEtBQWdCLEVBQUUsSUFBWSxFQUFFLEtBQWdDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQzlGLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLElBQUksS0FBTSxDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtSEFBbUgsQ0FBQyxDQUFDO1lBQ25JLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDaEQsVUFBVSxFQUFFLFVBQVU7WUFDdEIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsaUJBQWlCLEVBQUUsQ0FBQyxhQUFhLEtBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzlFLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTO1NBQ2xELENBQUMsQ0FBQztRQUNILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLHVDQUF1QyxFQUFFLENBQUMsQ0FBQztJQUNoSixDQUFDOztBQWxCSCxrREFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtTcGFjZUJ1Y2tldFByb3BzIHtcbiAgLyoqXG4gICAgICAgICAgICAgKiBUaGUgYnVja2V0IG5hbWUgZm9yIHRoZSB3b3Jrc3BhY2Ugb2YgYW4gRU1SIFN0dWRpby5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAZGVmYXVsdCAtICdlbXItc3R1ZGlvLXdvcmtzcGFjZS1idWNrZXQtQVdTOjpBY2NvdW50SWQnXG4gICAgICAgICAgICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAgICAgICAgICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgYnVja2V0IGlzIHJlbW92ZWQgZnJvbSB0aGlzIHN0YWNrLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIEBkZWZhdWx0IC0gVGhlIGJ1Y2tldCB3aWxsIGJlIGRlbGV0ZWQuXG4gICAgICAgICAgICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IGNkay5SZW1vdmFsUG9saWN5O1xufVxuXG5leHBvcnQgY2xhc3MgV29ya1NwYWNlQnVja2V0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGJ1Y2tldEVudGl0eTogczMuQnVja2V0O1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzPzogV29ya1NwYWNlQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgbmFtZSk7XG4gICAgY29uc3QgcmVtb3ZhbFBvbGljeSA9IChwcm9wcyAhPT0gdW5kZWZpbmVkKSA/IHByb3BzLnJlbW92YWxQb2xpY3kgOiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZO1xuICAgIGNvbnN0IGJ1Y2tldE5hbWUgPSAocHJvcHMgIT09IHVuZGVmaW5lZCkgPyBwcm9wcy5idWNrZXROYW1lIDogYGVtci1zdHVkaW8td29ya3NwYWNlLWJ1Y2tldC0ke2Nkay5Bd3MuQUNDT1VOVF9JRH1gO1xuICAgIHRoaXMuYnVja2V0RW50aXR5ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnV29ya1NwYWNlQnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogYnVja2V0TmFtZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHJlbW92YWxQb2xpY3ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogKHJlbW92YWxQb2xpY3kgIT09IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTikgPyB0cnVlIDogZmFsc2UsXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgIH0pO1xuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdPV29ya3NwYWNlQnVja2V0JywgeyB2YWx1ZTogdGhpcy5idWNrZXRFbnRpdHkuYnVja2V0QXJuLCBkZXNjcmlwdGlvbjogJ1RoZSBBUk4gb2YgdGhlIHdvcmtzcGFjZSBidWNrZXQuJyB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBFTVIgU2VydmVybGVzcyBidWNrZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1yU2VydmVybGVzc0J1Y2tldFByb3BzIHtcbiAgLyoqXG4gICAgICAgICAgICAgKiBUaGUgYnVja2V0IG5hbWUgZm9yIEVNUiBTZXJ2ZXJsZXNzIGFwcGxpY2F0aW9ucy5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAZGVmYXVsdCAtICdlbXItc2VydmVybGVzcy1BV1M6OkFjY291bnRJZCdcbiAgICAgICAgICAgICAqL1xuICByZWFkb25seSBidWNrZXROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICAgICAgICAgICAqIFBvbGljeSB0byBhcHBseSB3aGVuIHRoZSBidWNrZXQgaXMgcmVtb3ZlZCBmcm9tIHRoaXMgc3RhY2suXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogQGRlZmF1bHQgLSBUaGUgYnVja2V0IHdpbGwgYmUgZGVsZXRlZC5cbiAgICAgICAgICAgICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogY2RrLlJlbW92YWxQb2xpY3k7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGJ1Y2tldCBmb3IgRU1SIFNlcnZlcmxlc3MgYXBwbGljYXRpb25zLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBlbXJTZXJ2ZXJsZXNzQnVja2V0ID0gbmV3IEVtclNlcnZlcmxlc3NCdWNrZXQodGhpcywgJ0VtclNlcnZlcmxlc3MnKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgRW1yU2VydmVybGVzc0J1Y2tldCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBidWNrZXRFbnRpdHk6IHMzLkJ1Y2tldDtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wcz86IEVtclNlcnZlcmxlc3NCdWNrZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcbiAgICBjb25zdCByZW1vdmFsUG9saWN5ID0gKHByb3BzICE9PSB1bmRlZmluZWQpID8gcHJvcHMucmVtb3ZhbFBvbGljeSA6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1k7XG4gICAgaWYgKHByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChwcm9wcyEucmVtb3ZhbFBvbGljeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2ByZW1vdmFsUG9saWN5YCBpcyBub3Qgc2V0IGZvciB0aGUgRU1SIFNlcnZlcmxlc3MgYnVja2V0LCB0aGVyZWZvcmUsIHRoZSBkZWZhdWx0IHJlbW92YWwgcG9saWN5LCBERVNUUk9ZLCBpcyBzZXQuJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGJ1Y2tldE5hbWUgPSAocHJvcHMgIT09IHVuZGVmaW5lZCkgPyBwcm9wcy5idWNrZXROYW1lIDogYGVtci1zZXJ2ZXJsZXNzLSR7Y2RrLkF3cy5BQ0NPVU5UX0lEfWA7XG4gICAgdGhpcy5idWNrZXRFbnRpdHkgPSBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnLCB7XG4gICAgICBidWNrZXROYW1lOiBidWNrZXROYW1lLFxuICAgICAgcmVtb3ZhbFBvbGljeTogcmVtb3ZhbFBvbGljeSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiAocmVtb3ZhbFBvbGljeSAhPT0gY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOKSA/IHRydWUgOiBmYWxzZSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgfSk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ09FbXJTZXJ2ZXJsZXNzQnVja2V0JywgeyB2YWx1ZTogdGhpcy5idWNrZXRFbnRpdHkuYnVja2V0QXJuLCBkZXNjcmlwdGlvbjogJ1RoZSBBUk4gb2YgdGhlIEVNUiBTZXJ2ZXJsZXNzIGJ1Y2tldC4nIH0pO1xuICB9XG59Il19