cdk-emrserverless-with-delta-lake
Version:
A construct for the quick demo of EMR Serverless.
67 lines • 12.1 kB
JavaScript
;
var _a, _b;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EmrStudioWorkspaceSecurityGroup = exports.EmrStudioEngineSecurityGroup = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdk = require("aws-cdk-lib");
const ec2 = require("aws-cdk-lib/aws-ec2");
const constructs_1 = require("constructs");
/**
* Created an engine security group for EMR notebooks.
*
* For detail, plrease refer to [Engine security group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-security-groups.html#emr-studio-security-group-instructions).
*
* ```ts
* const workSpaceSecurityGroup = new EmrStudioWorkspaceSecurityGroup(this, 'Workspace', { vpc: baseVpc });
* const engineSecurityGroup = new EmrStudioEngineSecurityGroup(this, 'Engine', { vpc: baseVpc });
* workSpaceSecurityGroup.entity.connections.allowTo(engineSecurityGroup.entity, ec2.Port.tcp(18888), 'Allow traffic to any resources in the Engine security group for EMR Studio.');
* workSpaceSecurityGroup.entity.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443), 'Allow traffic to the internet to link publicly hosted Git repositories to Workspaces.');
* ```
*/
class EmrStudioEngineSecurityGroup extends constructs_1.Construct {
constructor(scope, name, props) {
super(scope, name);
this.entity = new ec2.SecurityGroup(this, 'SecurityGroup', {
securityGroupName: `DefaultEngineSecurityGroup-${cdk.Aws.ACCOUNT_ID}`,
vpc: props.vpc,
allowAllOutbound: false,
disableInlineRules: true,
description: 'Engine SG for EMR Studio',
});
cdk.Tags.of(this.entity).add('Name', `DefaultEngineSecurityGroup-${cdk.Aws.ACCOUNT_ID}`);
new cdk.CfnOutput(this, 'OEmrEngineSecurityGroupId', { value: this.entity.securityGroupId, description: 'The sg ID of the engine security group for EMR Studio' });
}
}
exports.EmrStudioEngineSecurityGroup = EmrStudioEngineSecurityGroup;
_a = JSII_RTTI_SYMBOL_1;
EmrStudioEngineSecurityGroup[_a] = { fqn: "cdk-emrserverless-with-delta-lake.EmrStudioEngineSecurityGroup", version: "2.0.823" };
/**
* Created a workspace security group for EMR Studio.
*
* For detail, plrease refer to [Workspace security group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-security-groups.html#emr-studio-security-group-instructions).
*
* ```ts
* const workSpaceSecurityGroup = new EmrStudioWorkspaceSecurityGroup(this, 'Workspace', { vpc: baseVpc });
* const engineSecurityGroup = new EmrStudioEngineSecurityGroup(this, 'Engine', { vpc: baseVpc });
* workSpaceSecurityGroup.entity.connections.allowTo(engineSecurityGroup.entity, ec2.Port.tcp(18888), 'Allow traffic to any resources in the Engine security group for EMR Studio.');
* workSpaceSecurityGroup.entity.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443), 'Allow traffic to the internet to link publicly hosted Git repositories to Workspaces.');
* ```
*/
class EmrStudioWorkspaceSecurityGroup extends constructs_1.Construct {
constructor(scope, name, props) {
super(scope, name);
this.entity = new ec2.SecurityGroup(this, 'SecurityGroup', {
securityGroupName: `DefaultWorkspaceSecurityGroupGit-${cdk.Aws.ACCOUNT_ID}`,
vpc: props.vpc,
allowAllOutbound: false,
disableInlineRules: true,
description: 'Workspace SG for EMR Studio',
});
cdk.Tags.of(this.entity).add('Name', `DefaultWorkspaceSecurityGroupGit-${cdk.Aws.ACCOUNT_ID}`);
new cdk.CfnOutput(this, 'OEmrEngineSecurityGroupId', { value: this.entity.securityGroupId, description: 'The SG ID of the workspace security group for EMR Studio' });
}
}
exports.EmrStudioWorkspaceSecurityGroup = EmrStudioWorkspaceSecurityGroup;
_b = JSII_RTTI_SYMBOL_1;
EmrStudioWorkspaceSecurityGroup[_b] = { fqn: "cdk-emrserverless-with-delta-lake.EmrStudioWorkspaceSecurityGroup", version: "2.0.823" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1yLXN0dWRpby1zZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW1yLXN0dWRpby1zZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLDJDQUF1QztBQWF2Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQWEsNEJBQTZCLFNBQVEsc0JBQVM7SUFLekQsWUFBWSxLQUFnQixFQUFFLElBQVksRUFBRSxLQUF3QztRQUNsRixLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDekQsaUJBQWlCLEVBQUUsOEJBQThCLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ3JFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixXQUFXLEVBQUUsMEJBQTBCO1NBQ3hDLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLDhCQUE4QixHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDekYsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSwyQkFBMkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsdURBQXVELEVBQUUsQ0FBQyxDQUFDO0lBQ3JLLENBQUM7O0FBaEJILG9FQWlCQzs7O0FBY0Q7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFhLCtCQUFnQyxTQUFRLHNCQUFTO0lBSzVELFlBQVksS0FBZ0IsRUFBRSxJQUFZLEVBQUUsS0FBMkM7UUFDckYsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ3pELGlCQUFpQixFQUFFLG9DQUFvQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUMzRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsV0FBVyxFQUFFLDZCQUE2QjtTQUMzQyxDQUFDLENBQUM7UUFDSCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxvQ0FBb0MsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQy9GLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLDBEQUEwRCxFQUFFLENBQUMsQ0FBQztJQUN4SyxDQUFDOztBQWhCSCwwRUFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBlbmdpbmUgc2VjdXJpdHkgZ3JvdXAgb2YgRU1SIFN0dWRpb1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtclN0dWRpb0VuZ2luZVNlY3VyaXR5R3JvdXBQcm9wcyB7XG4gIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgVlBDIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgZW5naW5lIHNlY3VyaXR5IGdyb3VwIGZvciBFTVIgU3R1ZGlvLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgVlBDIGluIGFuIEFXUyBhY2NvdW50LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcbn1cbi8qKlxuICogQ3JlYXRlZCBhbiBlbmdpbmUgc2VjdXJpdHkgZ3JvdXAgZm9yIEVNUiBub3RlYm9va3MuXG4gKlxuICogRm9yIGRldGFpbCwgcGxyZWFzZSByZWZlciB0byBbRW5naW5lIHNlY3VyaXR5IGdyb3VwXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZW1yL2xhdGVzdC9NYW5hZ2VtZW50R3VpZGUvZW1yLXN0dWRpby1zZWN1cml0eS1ncm91cHMuaHRtbCNlbXItc3R1ZGlvLXNlY3VyaXR5LWdyb3VwLWluc3RydWN0aW9ucykuXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IHdvcmtTcGFjZVNlY3VyaXR5R3JvdXAgPSBuZXcgRW1yU3R1ZGlvV29ya3NwYWNlU2VjdXJpdHlHcm91cCh0aGlzLCAnV29ya3NwYWNlJywgeyB2cGM6IGJhc2VWcGMgfSk7XG4gKiBjb25zdCBlbmdpbmVTZWN1cml0eUdyb3VwID0gbmV3IEVtclN0dWRpb0VuZ2luZVNlY3VyaXR5R3JvdXAodGhpcywgJ0VuZ2luZScsIHsgdnBjOiBiYXNlVnBjIH0pO1xuICogd29ya1NwYWNlU2VjdXJpdHlHcm91cC5lbnRpdHkuY29ubmVjdGlvbnMuYWxsb3dUbyhlbmdpbmVTZWN1cml0eUdyb3VwLmVudGl0eSwgZWMyLlBvcnQudGNwKDE4ODg4KSwgJ0FsbG93IHRyYWZmaWMgdG8gYW55IHJlc291cmNlcyBpbiB0aGUgRW5naW5lIHNlY3VyaXR5IGdyb3VwIGZvciBFTVIgU3R1ZGlvLicpO1xuICogd29ya1NwYWNlU2VjdXJpdHlHcm91cC5lbnRpdHkuYWRkRWdyZXNzUnVsZShlYzIuUGVlci5hbnlJcHY0KCksIGVjMi5Qb3J0LnRjcCg0NDMpLCAnQWxsb3cgdHJhZmZpYyB0byB0aGUgaW50ZXJuZXQgdG8gbGluayBwdWJsaWNseSBob3N0ZWQgR2l0IHJlcG9zaXRvcmllcyB0byBXb3Jrc3BhY2VzLicpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBFbXJTdHVkaW9FbmdpbmVTZWN1cml0eUdyb3VwIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZSByZXByZXNlbnRhdGl2ZSBvZiB0aGUgc2VjdXJpdHkgZ3JvdXAgYXMgdGhlIEVNUiBTdHVkaW8gZW5naW5lIHNlY3VyaXR5IGdyb3VwLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eTogZWMyLlNlY3VyaXR5R3JvdXA7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IEVtclN0dWRpb0VuZ2luZVNlY3VyaXR5R3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcbiAgICB0aGlzLmVudGl0eSA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCAnU2VjdXJpdHlHcm91cCcsIHtcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBgRGVmYXVsdEVuZ2luZVNlY3VyaXR5R3JvdXAtJHtjZGsuQXdzLkFDQ09VTlRfSUR9YCxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogZmFsc2UsXG4gICAgICBkaXNhYmxlSW5saW5lUnVsZXM6IHRydWUsXG4gICAgICBkZXNjcmlwdGlvbjogJ0VuZ2luZSBTRyBmb3IgRU1SIFN0dWRpbycsXG4gICAgfSk7XG4gICAgY2RrLlRhZ3Mub2YodGhpcy5lbnRpdHkpLmFkZCgnTmFtZScsIGBEZWZhdWx0RW5naW5lU2VjdXJpdHlHcm91cC0ke2Nkay5Bd3MuQUNDT1VOVF9JRH1gKTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnT0VtckVuZ2luZVNlY3VyaXR5R3JvdXBJZCcsIHsgdmFsdWU6IHRoaXMuZW50aXR5LnNlY3VyaXR5R3JvdXBJZCwgZGVzY3JpcHRpb246ICdUaGUgc2cgSUQgb2YgdGhlIGVuZ2luZSBzZWN1cml0eSBncm91cCBmb3IgRU1SIFN0dWRpbycgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIHdvcmtzcGFjZSBzZWN1cml0eSBncm91cCBvZiBFTVIgU3R1ZGlvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1yU3R1ZGlvV29ya3NwYWNlU2VjdXJpdHlHcm91cFByb3BzIHtcbiAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZSBWUEMgaW4gd2hpY2ggdG8gY3JlYXRlIHdvcmtzcGFjZSBzZWN1cml0eSBncm91cCBmb3IgRU1SIFN0dWRpby5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQGRlZmF1bHQgLSBkZWZhdWx0IFZQQyBpbiBhbiBBV1MgYWNjb3VudC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG59XG5cbi8qKlxuICogQ3JlYXRlZCBhIHdvcmtzcGFjZSBzZWN1cml0eSBncm91cCBmb3IgRU1SIFN0dWRpby5cbiAqXG4gKiBGb3IgZGV0YWlsLCBwbHJlYXNlIHJlZmVyIHRvIFtXb3Jrc3BhY2Ugc2VjdXJpdHkgZ3JvdXBdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbXIvbGF0ZXN0L01hbmFnZW1lbnRHdWlkZS9lbXItc3R1ZGlvLXNlY3VyaXR5LWdyb3Vwcy5odG1sI2Vtci1zdHVkaW8tc2VjdXJpdHktZ3JvdXAtaW5zdHJ1Y3Rpb25zKS5cbiAqXG4gKiBgYGB0c1xuICogY29uc3Qgd29ya1NwYWNlU2VjdXJpdHlHcm91cCA9IG5ldyBFbXJTdHVkaW9Xb3Jrc3BhY2VTZWN1cml0eUdyb3VwKHRoaXMsICdXb3Jrc3BhY2UnLCB7IHZwYzogYmFzZVZwYyB9KTtcbiAqIGNvbnN0IGVuZ2luZVNlY3VyaXR5R3JvdXAgPSBuZXcgRW1yU3R1ZGlvRW5naW5lU2VjdXJpdHlHcm91cCh0aGlzLCAnRW5naW5lJywgeyB2cGM6IGJhc2VWcGMgfSk7XG4gKiB3b3JrU3BhY2VTZWN1cml0eUdyb3VwLmVudGl0eS5jb25uZWN0aW9ucy5hbGxvd1RvKGVuZ2luZVNlY3VyaXR5R3JvdXAuZW50aXR5LCBlYzIuUG9ydC50Y3AoMTg4ODgpLCAnQWxsb3cgdHJhZmZpYyB0byBhbnkgcmVzb3VyY2VzIGluIHRoZSBFbmdpbmUgc2VjdXJpdHkgZ3JvdXAgZm9yIEVNUiBTdHVkaW8uJyk7XG4gKiB3b3JrU3BhY2VTZWN1cml0eUdyb3VwLmVudGl0eS5hZGRFZ3Jlc3NSdWxlKGVjMi5QZWVyLmFueUlwdjQoKSwgZWMyLlBvcnQudGNwKDQ0MyksICdBbGxvdyB0cmFmZmljIHRvIHRoZSBpbnRlcm5ldCB0byBsaW5rIHB1YmxpY2x5IGhvc3RlZCBHaXQgcmVwb3NpdG9yaWVzIHRvIFdvcmtzcGFjZXMuJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEVtclN0dWRpb1dvcmtzcGFjZVNlY3VyaXR5R3JvdXAgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlIHJlcHJlc2VudGF0aXZlIG9mIHRoZSBzZWN1cml0eSBncm91cCBhcyB0aGUgRU1SIFN0dWRpbyB3b3Jrc3BhY2Ugc2VjdXJpdHkgZ3JvdXAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5OiBlYzIuU2VjdXJpdHlHcm91cDtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wczogRW1yU3R1ZGlvV29ya3NwYWNlU2VjdXJpdHlHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIG5hbWUpO1xuICAgIHRoaXMuZW50aXR5ID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsICdTZWN1cml0eUdyb3VwJywge1xuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGBEZWZhdWx0V29ya3NwYWNlU2VjdXJpdHlHcm91cEdpdC0ke2Nkay5Bd3MuQUNDT1VOVF9JRH1gLFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZSxcbiAgICAgIGRpc2FibGVJbmxpbmVSdWxlczogdHJ1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnV29ya3NwYWNlIFNHIGZvciBFTVIgU3R1ZGlvJyxcbiAgICB9KTtcbiAgICBjZGsuVGFncy5vZih0aGlzLmVudGl0eSkuYWRkKCdOYW1lJywgYERlZmF1bHRXb3Jrc3BhY2VTZWN1cml0eUdyb3VwR2l0LSR7Y2RrLkF3cy5BQ0NPVU5UX0lEfWApO1xuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdPRW1yRW5naW5lU2VjdXJpdHlHcm91cElkJywgeyB2YWx1ZTogdGhpcy5lbnRpdHkuc2VjdXJpdHlHcm91cElkLCBkZXNjcmlwdGlvbjogJ1RoZSBTRyBJRCBvZiB0aGUgd29ya3NwYWNlIHNlY3VyaXR5IGdyb3VwIGZvciBFTVIgU3R1ZGlvJyB9KTtcbiAgfVxufSJdfQ==