cdk-emrserverless-with-delta-lake
Version:
A construct for the quick demo of EMR Serverless.
63 lines (62 loc) • 3.33 kB
TypeScript
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { Construct } from 'constructs';
/**
* Interface for engine security group of EMR Studio
*/
export interface EmrStudioEngineSecurityGroupProps {
/**
* The VPC in which to create the engine security group for EMR Studio.
*
* @default - default VPC in an AWS account.
*/
readonly vpc: ec2.IVpc;
}
/**
* 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.');
* ```
*/
export declare class EmrStudioEngineSecurityGroup extends Construct {
/**
* The representative of the security group as the EMR Studio engine security group.
*/
readonly entity: ec2.SecurityGroup;
constructor(scope: Construct, name: string, props: EmrStudioEngineSecurityGroupProps);
}
/**
* Interface for workspace security group of EMR Studio
*/
export interface EmrStudioWorkspaceSecurityGroupProps {
/**
* The VPC in which to create workspace security group for EMR Studio.
*
* @default - default VPC in an AWS account.
*/
readonly vpc: ec2.IVpc;
}
/**
* 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.');
* ```
*/
export declare class EmrStudioWorkspaceSecurityGroup extends Construct {
/**
* The representative of the security group as the EMR Studio workspace security group.
*/
readonly entity: ec2.SecurityGroup;
constructor(scope: Construct, name: string, props: EmrStudioWorkspaceSecurityGroupProps);
}