raindancers-network
Version:
Extensions to the ec2.Vpc Constructs
44 lines • 6.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EnterpriseZoneHelpers = void 0;
const path = require("path");
const aws_cdk_lib_1 = require("aws-cdk-lib");
const cdk = require("aws-cdk-lib");
const constructs = require("constructs");
class EnterpriseZoneHelpers extends constructs.Construct {
constructor(scope, id, props) {
super(scope, id);
const associateCentralVpcwithZone = new aws_cdk_lib_1.aws_lambda.SingletonFunction(this, 'associatezoneLambda', {
uuid: 'FAAD00440',
runtime: aws_cdk_lib_1.aws_lambda.Runtime.PYTHON_3_9,
logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_MONTH,
handler: 'associateCentralVPC.on_event',
code: aws_cdk_lib_1.aws_lambda.Code.fromAsset(path.join(__dirname, '../../lambda/dns')),
timeout: cdk.Duration.seconds(899),
});
associateCentralVpcwithZone.addToRolePolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({
actions: [
'sts:AssumeRole',
'route53:AssociateVpcWithHostedZone',
'route53:DisassociateVpcFromHostedZone',
'ec2:DescribeVpcs',
],
effect: aws_cdk_lib_1.aws_iam.Effect.ALLOW,
resources: ['*'],
}));
this.customResource = new cdk.CustomResource(this, 'associateVPCcustomResources', {
resourceType: 'Custom::AssociateInternalZone',
properties: {
ZoneId: props.zoneId,
Region: props.region,
SearchTagKey: props.searchTag.key,
SearchTagValue: props.searchTag.value,
},
serviceToken: new aws_cdk_lib_1.custom_resources.Provider(this, 'associateProvider', {
onEventHandler: associateCentralVpcwithZone,
}).serviceToken,
});
}
}
exports.EnterpriseZoneHelpers = EnterpriseZoneHelpers;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50ZXJwcmlzZVpvbmVoZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Rucy9lbnRlcnByaXNlWm9uZWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUtxQjtBQUVyQixtQ0FBbUM7QUFDbkMseUNBQXlDO0FBUXpDLE1BQWEscUJBQXNCLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFJN0QsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBaUM7UUFFakMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLDJCQUEyQixHQUFHLElBQUksd0JBQVUsQ0FBQyxpQkFBaUIsQ0FDbEUsSUFBSSxFQUNKLHFCQUFxQixFQUNyQjtZQUNFLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSx3QkFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ3RDLFlBQVksRUFBRSxzQkFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTO1lBQzFDLE9BQU8sRUFBRSw4QkFBOEI7WUFDdkMsSUFBSSxFQUFFLHdCQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FDekM7WUFDRCxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQ25DLENBQ0YsQ0FBQztRQUVGLDJCQUEyQixDQUFDLGVBQWUsQ0FDekMsSUFBSSxxQkFBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUU7Z0JBQ1AsZ0JBQWdCO2dCQUNoQixvQ0FBb0M7Z0JBQ3BDLHVDQUF1QztnQkFDdkMsa0JBQWtCO2FBQ25CO1lBQ0QsTUFBTSxFQUFFLHFCQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQzFDLElBQUksRUFDSiw2QkFBNkIsRUFDN0I7WUFDRSxZQUFZLEVBQUUsK0JBQStCO1lBQzdDLFVBQVUsRUFBRTtnQkFDVixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRztnQkFDdkMsY0FBYyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSzthQUNoQztZQUNELFlBQVksRUFBRSxJQUFJLDhCQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtnQkFDdkQsY0FBYyxFQUFFLDJCQUEyQjthQUM1QyxDQUFDLENBQUMsWUFBWTtTQUNoQixDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4REQsc0RBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIGN1c3RvbV9yZXNvdXJjZXMgYXMgY3IsXG4gIGF3c19sb2dzIGFzIGxvZ3MsXG4gIGF3c19sYW1iZGEsXG4gIGF3c19pYW0gYXMgaWFtLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGVycHJpc2Vab25lSGVscGVyc1Byb3BzIHtcbiAgem9uZUlkOiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBzZWFyY2hUYWc6IGNkay5UYWc7XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRlcnByaXNlWm9uZUhlbHBlcnMgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG5cbiAgY3VzdG9tUmVzb3VyY2U6IGNkay5DdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogRW50ZXJwcmlzZVpvbmVIZWxwZXJzUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBhc3NvY2lhdGVDZW50cmFsVnBjd2l0aFpvbmUgPSBuZXcgYXdzX2xhbWJkYS5TaW5nbGV0b25GdW5jdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICAnYXNzb2NpYXRlem9uZUxhbWJkYScsXG4gICAgICB7XG4gICAgICAgIHV1aWQ6ICdGQUFEMDA0NDAnLFxuICAgICAgICBydW50aW1lOiBhd3NfbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfOSxcbiAgICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgICBoYW5kbGVyOiAnYXNzb2NpYXRlQ2VudHJhbFZQQy5vbl9ldmVudCcsXG4gICAgICAgIGNvZGU6IGF3c19sYW1iZGEuQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uL2xhbWJkYS9kbnMnKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoODk5KSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGFzc29jaWF0ZUNlbnRyYWxWcGN3aXRoWm9uZS5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnc3RzOkFzc3VtZVJvbGUnLFxuICAgICAgICAgICdyb3V0ZTUzOkFzc29jaWF0ZVZwY1dpdGhIb3N0ZWRab25lJyxcbiAgICAgICAgICAncm91dGU1MzpEaXNhc3NvY2lhdGVWcGNGcm9tSG9zdGVkWm9uZScsXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZVZwY3MnLFxuICAgICAgICBdLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UoXG4gICAgICB0aGlzLFxuICAgICAgJ2Fzc29jaWF0ZVZQQ2N1c3RvbVJlc291cmNlcycsXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6QXNzb2NpYXRlSW50ZXJuYWxab25lJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIFpvbmVJZDogcHJvcHMuem9uZUlkLCAvLyB0aGlzIGlzIHRoZSB6b25lXG4gICAgICAgICAgUmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICAgICAgU2VhcmNoVGFnS2V5OiBwcm9wcy5zZWFyY2hUYWcua2V5LFxuXHRcdCAgU2VhcmNoVGFnVmFsdWU6IHByb3BzLnNlYXJjaFRhZy52YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZVRva2VuOiBuZXcgY3IuUHJvdmlkZXIodGhpcywgJ2Fzc29jaWF0ZVByb3ZpZGVyJywge1xuICAgICAgICAgIG9uRXZlbnRIYW5kbGVyOiBhc3NvY2lhdGVDZW50cmFsVnBjd2l0aFpvbmUsXG4gICAgICAgIH0pLnNlcnZpY2VUb2tlbixcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19