UNPKG

hov-ec2

Version:

Higher level constructs for AWS CDK

71 lines 10.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HovEc2 = void 0; const cdk = require("@aws-cdk/core"); const ec2 = require("@aws-cdk/aws-ec2"); class HovEc2 extends cdk.Construct { constructor(scope, id, props) { super(scope, id); const vpc = ec2.Vpc.fromLookup(this, 'vpc', { tags: { BusinessUnit: props.bizUnit, Environment: props.envType } }); const subnet = vpc.selectSubnets({ subnetType: ec2.SubnetType.PRIVATE }); const amiLookup = new cdk.CfnResource(this, 'LookupAMIMetadata', { type: "Custom::AmiLookup", properties: { ServiceToken: cdk.Fn.importValue('HOV-LookupAmiFunction').toString(), appId: 'test', bizUnit: props.bizUnit, AMI: 'None', envType: props.envType, osType: props.osType, stackName: props.stackName, region: props.region, s3AmiObjectName: 'ami-mappings.latest', s3BucketName: 'verisk-cloud-metadata-us-east', } }); const amiId = amiLookup.getAtt('amiId').toString(); const instance_type = new ec2.InstanceType(props.instanceType); const ami = ec2.MachineImage.genericLinux({ 'us-east-1': amiId }); const block_devices = [{ deviceName: '/dev/xvda', mappingEnabled: true, volume: ec2.BlockDeviceVolume.ebs(props.volumeSize, { deleteOnTermination: true, encrypted: true, volumeType: ec2.EbsDeviceVolumeType.IO1, iops: props.iops }) }]; const instance = new ec2.Instance(this, 'LinuxInstance', { instanceType: instance_type, instanceName: props.instanceName, blockDevices: block_devices, vpc: vpc, machineImage: ami, vpcSubnets: subnet, keyName: props.keyName }); cdk.Tag.add(instance, 'Name', props.instanceName); cdk.Tag.add(instance, 'VA-ApplicationId', props.appId); cdk.Tag.add(instance, 'VA-BusinessUnit', props.bizUnit); cdk.Tag.add(instance, 'VA-ConfigManagementTool', 'default'); cdk.Tag.add(instance, 'VA-ConfigPersonality', 'default'); cdk.Tag.add(instance, 'VA-ConfigVersion', 'default'); cdk.Tag.add(instance, 'VA-DeploymentGuid', props.deploymentGuid); cdk.Tag.add(instance, 'VA-DeploymentZone', props.deploymentZone); cdk.Tag.add(instance, 'VA-EnvironmentType', props.envType); cdk.Tag.add(instance, 'VA-MgmtModel', 'pet'); cdk.Tag.add(instance, 'VA-OSType', props.osType); } } exports.HovEc2 = HovEc2; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBcUM7QUFDckMsd0NBQXdDO0FBeUJ4QyxNQUFhLE1BQU8sU0FBUSxHQUFHLENBQUMsU0FBUztJQUN2QyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUMxQyxJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUMzQixXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU87YUFDM0I7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO1lBQy9CLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU87U0FDbkMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUMvRCxJQUFJLEVBQUcsbUJBQW1CO1lBQzFCLFVBQVUsRUFBRztnQkFDWixZQUFZLEVBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JFLEtBQUssRUFBRSxNQUFNO2dCQUNiLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixlQUFlLEVBQUUscUJBQXFCO2dCQUN0QyxZQUFZLEVBQUUsK0JBQStCO2FBQzdDO1NBQ0osQ0FBQyxDQUFDO1FBRUgsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVuRCxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9ELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1lBQ3hDLFdBQVcsRUFBRSxLQUFLO1NBQ25CLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUFHLENBQUM7Z0JBQ3JCLFVBQVUsRUFBRSxXQUFXO2dCQUN2QixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtvQkFDbEQsbUJBQW1CLEVBQUUsSUFBSTtvQkFDekIsU0FBUyxFQUFFLElBQUk7b0JBQ2YsVUFBVSxFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHO29CQUN2QyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ2pCLENBQUM7YUFDSCxDQUFDLENBQUE7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUN2RCxZQUFZLEVBQUUsYUFBYTtZQUMzQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsWUFBWSxFQUFFLGFBQWE7WUFDM0IsR0FBRyxFQUFFLEdBQUc7WUFDUixZQUFZLEVBQUUsR0FBRztZQUNqQixVQUFVLEVBQUUsTUFBTTtZQUNsQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQyxDQUFDO1FBRUgsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1RCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0MsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBeEVELHdCQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdAYXdzLWNkay9hd3MtZWMyJztcblxuZXhwb3J0IGludGVyZmFjZSBIb3ZFYzJQcm9wcyB7XG5cbiAgcmVhZG9ubHkgYml6VW5pdDogc3RyaW5nO1xuICByZWFkb25seSBlbnZUeXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFtaU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgb3NUeXBlOiBzdHJpbmc7XG4gIFxuICAvLyBFQzIgcHJvcHNcbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGluc3RhbmNlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBpb3BzOiBudW1iZXI7XG4gIHJlYWRvbmx5IHZvbHVtZVNpemU6bnVtYmVyO1xuICByZWFkb25seSBrZXlOYW1lOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdvcmtsb2FkVHlwZTogc3RyaW5nO1xuICByZWFkb25seSBkZXBsb3ltZW50Wm9uZTogc3RyaW5nO1xuICByZWFkb25seSBkZXBsb3ltZW50R3VpZDogc3RyaW5nO1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgaW5jbHVkZUFwcElkSW5PVT86IHN0cmluZztcbiAgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEhvdkVjMiBleHRlbmRzIGNkay5Db25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEhvdkVjMlByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHZwYyA9IGVjMi5WcGMuZnJvbUxvb2t1cCh0aGlzLCAndnBjJywgeyBcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgQnVzaW5lc3NVbml0OiBwcm9wcy5iaXpVbml0LFxuICAgICAgICBFbnZpcm9ubWVudDogcHJvcHMuZW52VHlwZVxuICAgICAgfSAgXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWJuZXQgPSB2cGMuc2VsZWN0U3VibmV0cyh7XG4gICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QUklWQVRFXG4gICAgfSk7XG5cbiAgICBjb25zdCBhbWlMb29rdXAgPSBuZXcgY2RrLkNmblJlc291cmNlKHRoaXMsICdMb29rdXBBTUlNZXRhZGF0YScsIHtcbiAgICAgIHR5cGUgOiBcIkN1c3RvbTo6QW1pTG9va3VwXCIsXG4gICAgICBwcm9wZXJ0aWVzIDoge1xuICAgICAgIFNlcnZpY2VUb2tlbiA6IGNkay5Gbi5pbXBvcnRWYWx1ZSgnSE9WLUxvb2t1cEFtaUZ1bmN0aW9uJykudG9TdHJpbmcoKSxcbiAgICAgICBhcHBJZDogJ3Rlc3QnLFxuICAgICAgIGJpelVuaXQ6IHByb3BzLmJpelVuaXQsXG4gICAgICAgQU1JOiAnTm9uZScsXG4gICAgICAgZW52VHlwZTogcHJvcHMuZW52VHlwZSxcbiAgICAgICBvc1R5cGU6IHByb3BzLm9zVHlwZSxcbiAgICAgICBzdGFja05hbWU6IHByb3BzLnN0YWNrTmFtZSxcbiAgICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgICBzM0FtaU9iamVjdE5hbWU6ICdhbWktbWFwcGluZ3MubGF0ZXN0JyxcbiAgICAgICBzM0J1Y2tldE5hbWU6ICd2ZXJpc2stY2xvdWQtbWV0YWRhdGEtdXMtZWFzdCcsXG4gICAgICB9XG4gIH0pO1xuICBcbiAgY29uc3QgYW1pSWQgPSBhbWlMb29rdXAuZ2V0QXR0KCdhbWlJZCcpLnRvU3RyaW5nKCk7XG5cbiAgY29uc3QgaW5zdGFuY2VfdHlwZSA9IG5ldyBlYzIuSW5zdGFuY2VUeXBlKHByb3BzLmluc3RhbmNlVHlwZSk7XG5cbiAgY29uc3QgYW1pID0gZWMyLk1hY2hpbmVJbWFnZS5nZW5lcmljTGludXgoe1xuICAgICd1cy1lYXN0LTEnOiBhbWlJZFxuICB9KTtcblxuICBjb25zdCBibG9ja19kZXZpY2VzID0gW3tcbiAgICBkZXZpY2VOYW1lOiAnL2Rldi94dmRhJyxcbiAgICBtYXBwaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICB2b2x1bWU6IGVjMi5CbG9ja0RldmljZVZvbHVtZS5lYnMocHJvcHMudm9sdW1lU2l6ZSwge1xuICAgICAgZGVsZXRlT25UZXJtaW5hdGlvbjogdHJ1ZSxcbiAgICAgIGVuY3J5cHRlZDogdHJ1ZSwgLy8gZW5jcnlwdGlvbiBlbmFibGVkIG9uIHRoZSBhY2NvdW50IGxldmVsXG4gICAgICB2b2x1bWVUeXBlOiBlYzIuRWJzRGV2aWNlVm9sdW1lVHlwZS5JTzEsXG4gICAgICBpb3BzOiBwcm9wcy5pb3BzXG4gICAgfSlcbiAgfV1cblxuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgJ0xpbnV4SW5zdGFuY2UnLCB7XG4gICAgaW5zdGFuY2VUeXBlOiBpbnN0YW5jZV90eXBlLFxuICAgIGluc3RhbmNlTmFtZTogcHJvcHMuaW5zdGFuY2VOYW1lLFxuICAgIGJsb2NrRGV2aWNlczogYmxvY2tfZGV2aWNlcyxcbiAgICB2cGM6IHZwYyxcbiAgICBtYWNoaW5lSW1hZ2U6IGFtaSxcbiAgICB2cGNTdWJuZXRzOiBzdWJuZXQsXG4gICAga2V5TmFtZTogcHJvcHMua2V5TmFtZVxuICB9KTtcblxuICBjZGsuVGFnLmFkZChpbnN0YW5jZSwgJ05hbWUnLCBwcm9wcy5pbnN0YW5jZU5hbWUpO1xuICBjZGsuVGFnLmFkZChpbnN0YW5jZSwgJ1ZBLUFwcGxpY2F0aW9uSWQnLCBwcm9wcy5hcHBJZCk7XG4gIGNkay5UYWcuYWRkKGluc3RhbmNlLCAnVkEtQnVzaW5lc3NVbml0JywgcHJvcHMuYml6VW5pdCk7XG4gIGNkay5UYWcuYWRkKGluc3RhbmNlLCAnVkEtQ29uZmlnTWFuYWdlbWVudFRvb2wnLCAnZGVmYXVsdCcpO1xuICBjZGsuVGFnLmFkZChpbnN0YW5jZSwgJ1ZBLUNvbmZpZ1BlcnNvbmFsaXR5JywgJ2RlZmF1bHQnKTtcbiAgY2RrLlRhZy5hZGQoaW5zdGFuY2UsICdWQS1Db25maWdWZXJzaW9uJywgJ2RlZmF1bHQnKTtcbiAgY2RrLlRhZy5hZGQoaW5zdGFuY2UsICdWQS1EZXBsb3ltZW50R3VpZCcsIHByb3BzLmRlcGxveW1lbnRHdWlkKTtcbiAgY2RrLlRhZy5hZGQoaW5zdGFuY2UsICdWQS1EZXBsb3ltZW50Wm9uZScsIHByb3BzLmRlcGxveW1lbnRab25lKTtcbiAgY2RrLlRhZy5hZGQoaW5zdGFuY2UsICdWQS1FbnZpcm9ubWVudFR5cGUnLCBwcm9wcy5lbnZUeXBlKTtcbiAgY2RrLlRhZy5hZGQoaW5zdGFuY2UsICdWQS1NZ210TW9kZWwnLCAncGV0Jyk7XG4gIGNkay5UYWcuYWRkKGluc3RhbmNlLCAnVkEtT1NUeXBlJywgcHJvcHMub3NUeXBlKTtcbiAgfVxufVxuIl19