UNPKG

raindancers-network

Version:
61 lines 9.01 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResolveSubnetGroupName = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const path = require("path"); const aws_cdk_lib_1 = require("aws-cdk-lib"); const cdk = require("aws-cdk-lib"); const constructs = require("constructs"); /** * Creates a period task to update the SSM Agent on an EC2 Instance */ class ResolveSubnetGroupName extends constructs.Construct { constructor(scope, id, props) { super(scope, id); // get the owner of the VPC via a SDK Call. const getVpcOwner = new aws_cdk_lib_1.custom_resources.AwsCustomResource(this, 'GetVpcOwner', { onCreate: { service: 'EC2', action: 'describeVpcs', parameters: { VpcIds: [props.vpc.vpcId], }, physicalResourceId: aws_cdk_lib_1.custom_resources.PhysicalResourceId.of(props.vpc.vpcArn), }, policy: aws_cdk_lib_1.custom_resources.AwsCustomResourcePolicy.fromSdkCalls({ resources: aws_cdk_lib_1.custom_resources.AwsCustomResourcePolicy.ANY_RESOURCE, }), }); const vpcOwner = getVpcOwner.getResponseField('Vpcs.0.OwnerId'); const resolverFn = new aws_cdk_lib_1.aws_lambda.Function(this, 'ResolverFunction', { code: aws_cdk_lib_1.aws_lambda.Code.fromAsset(path.join(__dirname, '../../lambda/evpc')), runtime: aws_cdk_lib_1.aws_lambda.Runtime.PYTHON_3_9, handler: 'flowlogintegration.on_event', }); resolverFn.addToRolePolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({ effect: aws_cdk_lib_1.aws_iam.Effect.ALLOW, resources: [`arn:aws:iam::${vpcOwner}:role/read-${props.vpc.vpcId}-${cdk.Aws.ACCOUNT_ID}`], actions: ['sts:AssumeRole'], })); const subnetNameResolver = new cdk.CustomResource(this, 'ResolveSubnetGroupCR', { serviceToken: new aws_cdk_lib_1.custom_resources.Provider(this, 'resolverFnCR', { onEventHandler: resolverFn, }).serviceToken, properties: { vpcId: props.vpc.vpcId, subnetGroupName: props.subnetGroupName, assumeRole: `arn:aws:iam::${vpcOwner}:role/read-${props.vpc.vpcId}-${cdk.Aws.ACCOUNT_ID}`, }, }); let subnetIds = []; for (let i = 0; i < props.azcount; i++) { subnetIds.push(aws_cdk_lib_1.aws_ec2.Subnet.fromSubnetId(this, `subnet${i}`, subnetNameResolver.getAttString(`Subnet${i}`))); } this.subnetSelection = { subnets: subnetIds }; } } exports.ResolveSubnetGroupName = ResolveSubnetGroupName; _a = JSII_RTTI_SYMBOL_1; ResolveSubnetGroupName[_a] = { fqn: "raindancers-network.network.ResolveSubnetGroupName", version: "1.29.3" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZVN1Ym5ldEdyb3VwTmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZwYy9yZXNvbHZlU3VibmV0R3JvdXBOYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3Qiw2Q0FNcUI7QUFDckIsbUNBQW1DO0FBQ25DLHlDQUF5QztBQVV6Qzs7RUFFRTtBQUNGLE1BQWEsc0JBQXVCLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFJOUQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFrQztRQUN0RixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLDJDQUEyQztRQUUzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLDhCQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMvRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztpQkFDMUI7Z0JBQ0Qsa0JBQWtCLEVBQUUsOEJBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7YUFDL0Q7WUFDRCxNQUFNLEVBQUUsOEJBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7Z0JBQzlDLFNBQVMsRUFBRSw4QkFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVk7YUFDbkQsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBR2hFLE1BQU0sVUFBVSxHQUFHLElBQUksd0JBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ2xFLElBQUksRUFBRSx3QkFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUMxRSxPQUFPLEVBQUUsd0JBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUN0QyxPQUFPLEVBQUUsNkJBQTZCO1NBQ3hDLENBQUMsQ0FBQztRQUdILFVBQVUsQ0FBQyxlQUFlLENBQ3ZCLElBQUkscUJBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsTUFBTSxFQUFFLHFCQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLFFBQVEsY0FBYyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFGLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO1NBQzVCLENBQUMsQ0FDSixDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQzdFLFlBQVksRUFBRSxJQUFJLDhCQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7Z0JBQ2xELGNBQWMsRUFBRSxVQUFVO2FBQzNCLENBQUMsQ0FBQyxZQUFZO1lBQ2YsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUs7Z0JBQ3RCLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtnQkFDdEMsVUFBVSxFQUFFLGdCQUFnQixRQUFRLGNBQWMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUU7YUFDMUY7U0FDSCxDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsR0FBa0IsRUFBRSxDQUFDO1FBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNHO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUUvQyxDQUFDOztBQTNESCx3REE0REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgYXdzX2VjMiBhcyBlYzIsXG4gIGN1c3RvbV9yZXNvdXJjZXMgYXMgY3IsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfbGFtYmRhLFxufVxuICBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVTdWJuZXRHcm91cE5hbWVQcm9wcyB7XG4gIHJlYWRvbmx5IHZwYzogZWMyLlZwYyB8IGVjMi5JVnBjO1xuICByZWFkb25seSBzdWJuZXRHcm91cE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYXpjb3VudDogbnVtYmVyO1xufVxuXG5cbi8qKlxuKiBDcmVhdGVzIGEgcGVyaW9kIHRhc2sgdG8gdXBkYXRlIHRoZSBTU00gQWdlbnQgb24gYW4gRUMyIEluc3RhbmNlXG4qL1xuZXhwb3J0IGNsYXNzIFJlc29sdmVTdWJuZXRHcm91cE5hbWUgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG5cbiAgc3VibmV0U2VsZWN0aW9uOiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJlc29sdmVTdWJuZXRHcm91cE5hbWVQcm9wcykge1xuXHQgIHN1cGVyKHNjb3BlLCBpZCk7XG5cblx0ICAvLyBnZXQgdGhlIG93bmVyIG9mIHRoZSBWUEMgdmlhIGEgU0RLIENhbGwuXG5cblx0ICBjb25zdCBnZXRWcGNPd25lciA9IG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZSh0aGlzLCAnR2V0VnBjT3duZXInLCB7XG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiAnRUMyJyxcbiAgICAgICAgYWN0aW9uOiAnZGVzY3JpYmVWcGNzJyxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIFZwY0lkczogW3Byb3BzLnZwYy52cGNJZF0sXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKHByb3BzLnZwYy52cGNBcm4pLFxuICAgICAgfSxcbiAgICAgIHBvbGljeTogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgcmVzb3VyY2VzOiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UsXG4gICAgICB9KSxcblx0ICB9KTtcblxuXHQgIGNvbnN0IHZwY093bmVyID0gZ2V0VnBjT3duZXIuZ2V0UmVzcG9uc2VGaWVsZCgnVnBjcy4wLk93bmVySWQnKTtcblxuXG5cdCAgY29uc3QgcmVzb2x2ZXJGbiA9IG5ldyBhd3NfbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdSZXNvbHZlckZ1bmN0aW9uJywge1xuICAgICAgY29kZTogYXdzX2xhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vbGFtYmRhL2V2cGMnKSksXG4gICAgICBydW50aW1lOiBhd3NfbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfOSxcbiAgICAgIGhhbmRsZXI6ICdmbG93bG9naW50ZWdyYXRpb24ub25fZXZlbnQnLFxuXHQgIH0pO1xuXG5cblx0ICByZXNvbHZlckZuLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czppYW06OiR7dnBjT3duZXJ9OnJvbGUvcmVhZC0ke3Byb3BzLnZwYy52cGNJZH0tJHtjZGsuQXdzLkFDQ09VTlRfSUR9YF0sXG4gICAgICAgIGFjdGlvbnM6IFsnc3RzOkFzc3VtZVJvbGUnXSxcbiAgICAgIH0pLFxuXHQgICk7XG5cblx0ICBjb25zdCBzdWJuZXROYW1lUmVzb2x2ZXIgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdSZXNvbHZlU3VibmV0R3JvdXBDUicsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogbmV3IGNyLlByb3ZpZGVyKHRoaXMsICdyZXNvbHZlckZuQ1InLCB7XG4gICAgICAgIG9uRXZlbnRIYW5kbGVyOiByZXNvbHZlckZuLFxuICAgICAgfSkuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICB2cGNJZDogcHJvcHMudnBjLnZwY0lkLFxuICAgICAgICBzdWJuZXRHcm91cE5hbWU6IHByb3BzLnN1Ym5ldEdyb3VwTmFtZSxcbiAgICAgICAgYXNzdW1lUm9sZTogYGFybjphd3M6aWFtOjoke3ZwY093bmVyfTpyb2xlL3JlYWQtJHtwcm9wcy52cGMudnBjSWR9LSR7Y2RrLkF3cy5BQ0NPVU5UX0lEfWAsXG4gICAgICB9LFxuXHQgIH0pO1xuXG5cdCAgbGV0IHN1Ym5ldElkczogZWMyLklTdWJuZXRbXSA9IFtdO1xuXHQgIGZvciAobGV0IGk9MDsgaSA8IHByb3BzLmF6Y291bnQ7IGkrKykge1xuXHQgIFx0c3VibmV0SWRzLnB1c2goZWMyLlN1Ym5ldC5mcm9tU3VibmV0SWQodGhpcywgYHN1Ym5ldCR7aX1gLCBzdWJuZXROYW1lUmVzb2x2ZXIuZ2V0QXR0U3RyaW5nKGBTdWJuZXQke2l9YCkpKTtcblx0ICB9XG5cblx0ICB0aGlzLnN1Ym5ldFNlbGVjdGlvbiA9IHsgc3VibmV0czogc3VibmV0SWRzIH07XG5cbiAgfVxufSJdfQ==