cdk-efs-assets
Version:
Amazon EFS assets from Github repositories or S3 buckets
53 lines • 6.88 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EfsFargateSite = 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 ecs = require("aws-cdk-lib/aws-ecs");
const patterns = require("aws-cdk-lib/aws-ecs-patterns");
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
const constructs_1 = require("constructs");
class EfsFargateSite extends constructs_1.Construct {
constructor(scope, id, props) {
super(scope, id);
this.task = props.task;
this.task.addVolume({
name: 'efs-storage',
efsVolumeConfiguration: {
fileSystemId: props.accessPoint.fileSystem.fileSystemId,
authorizationConfig: {
accessPointId: props.accessPoint.accessPointId,
},
transitEncryption: 'ENABLED',
},
});
this.service = new patterns.ApplicationLoadBalancedFargateService(this, 'FargateService', {
vpc: props.vpc,
taskDefinition: this.task,
platformVersion: ecs.FargatePlatformVersion.VERSION1_4,
});
// this.service.node.addDependency(props.accessPoint.fileSystem.mountTargetsAvailable)
this.task.addToExecutionRolePolicy(new aws_iam_1.PolicyStatement({
actions: [
'elasticfilesystem:ClientMount',
'elasticfilesystem:ClientWrite',
],
resources: [
cdk.Stack.of(this).formatArn({
service: 'elasticfilesystem',
resource: 'file-system',
arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
resourceName: props.accessPoint.fileSystem.fileSystemId,
}),
],
}));
// allow fargate ingress to the efs filesystem
props.accessPoint.fileSystem.connections.allowFrom(this.service.service, ec2.Port.tcp(2049));
}
}
exports.EfsFargateSite = EfsFargateSite;
_a = JSII_RTTI_SYMBOL_1;
EfsFargateSite[_a] = { fqn: "cdk-efs-assets.EfsFargateSite", version: "0.3.95" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZzLWZhcmdhdGUtc2l0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lZnMtZmFyZ2F0ZS1zaXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MseURBQXlEO0FBRXpELGlEQUFzRDtBQUN0RCwyQ0FBdUM7QUFTdkMsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFHM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNsQixJQUFJLEVBQUUsYUFBYTtZQUNuQixzQkFBc0IsRUFBRTtnQkFDdEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVk7Z0JBQ3ZELG1CQUFtQixFQUFFO29CQUNuQixhQUFhLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhO2lCQUUvQztnQkFDRCxpQkFBaUIsRUFBRSxTQUFTO2FBRTdCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDeEYsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3pCLGVBQWUsRUFBRSxHQUFHLENBQUMsc0JBQXNCLENBQUMsVUFBVTtTQUN2RCxDQUFDLENBQUM7UUFFSCxzRkFBc0Y7UUFFdEYsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLHlCQUFlLENBQUM7WUFDckQsT0FBTyxFQUFFO2dCQUNQLCtCQUErQjtnQkFDL0IsK0JBQStCO2FBQ2hDO1lBQ0QsU0FBUyxFQUFFO2dCQUNULEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDM0IsT0FBTyxFQUFFLG1CQUFtQjtvQkFDNUIsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQjtvQkFDNUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVk7aUJBQ3hELENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUosOENBQThDO1FBQzlDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDOztBQTlDSCx3Q0ErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0ICogYXMgcGF0dGVybnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcy1wYXR0ZXJucyc7XG5pbXBvcnQgKiBhcyBlZnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVmcyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRWZzRmFyZ2F0ZVNpdGVQcm9wcyB7XG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG4gIHJlYWRvbmx5IHRhc2s6IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb247XG4gIHJlYWRvbmx5IGFjY2Vzc1BvaW50OiBlZnMuQWNjZXNzUG9pbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBFZnNGYXJnYXRlU2l0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHRhc2s6IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb247XG4gIHJlYWRvbmx5IHNlcnZpY2U6IHBhdHRlcm5zLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkRmFyZ2F0ZVNlcnZpY2U7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFZnNGYXJnYXRlU2l0ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMudGFzayA9IHByb3BzLnRhc2s7XG5cbiAgICB0aGlzLnRhc2suYWRkVm9sdW1lKHtcbiAgICAgIG5hbWU6ICdlZnMtc3RvcmFnZScsXG4gICAgICBlZnNWb2x1bWVDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGZpbGVTeXN0ZW1JZDogcHJvcHMuYWNjZXNzUG9pbnQuZmlsZVN5c3RlbS5maWxlU3lzdGVtSWQsXG4gICAgICAgIGF1dGhvcml6YXRpb25Db25maWc6IHtcbiAgICAgICAgICBhY2Nlc3NQb2ludElkOiBwcm9wcy5hY2Nlc3NQb2ludC5hY2Nlc3NQb2ludElkLFxuICAgICAgICAgIC8vIGlhbTogJ0VOQUJMRUQnLFxuICAgICAgICB9LFxuICAgICAgICB0cmFuc2l0RW5jcnlwdGlvbjogJ0VOQUJMRUQnLFxuICAgICAgICAvLyByb290RGlyZWN0b3J5OiAnL2RlbW8tZ2l0aHViJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnNlcnZpY2UgPSBuZXcgcGF0dGVybnMuQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZSh0aGlzLCAnRmFyZ2F0ZVNlcnZpY2UnLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2ssXG4gICAgICBwbGF0Zm9ybVZlcnNpb246IGVjcy5GYXJnYXRlUGxhdGZvcm1WZXJzaW9uLlZFUlNJT04xXzQsXG4gICAgfSk7XG5cbiAgICAvLyB0aGlzLnNlcnZpY2Uubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLmFjY2Vzc1BvaW50LmZpbGVTeXN0ZW0ubW91bnRUYXJnZXRzQXZhaWxhYmxlKVxuXG4gICAgdGhpcy50YXNrLmFkZFRvRXhlY3V0aW9uUm9sZVBvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2VsYXN0aWNmaWxlc3lzdGVtOkNsaWVudE1vdW50JyxcbiAgICAgICAgJ2VsYXN0aWNmaWxlc3lzdGVtOkNsaWVudFdyaXRlJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgY2RrLlN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgICAgc2VydmljZTogJ2VsYXN0aWNmaWxlc3lzdGVtJyxcbiAgICAgICAgICByZXNvdXJjZTogJ2ZpbGUtc3lzdGVtJyxcbiAgICAgICAgICBhcm5Gb3JtYXQ6IGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICByZXNvdXJjZU5hbWU6IHByb3BzLmFjY2Vzc1BvaW50LmZpbGVTeXN0ZW0uZmlsZVN5c3RlbUlkLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSkpO1xuXG4gICAgLy8gYWxsb3cgZmFyZ2F0ZSBpbmdyZXNzIHRvIHRoZSBlZnMgZmlsZXN5c3RlbVxuICAgIHByb3BzLmFjY2Vzc1BvaW50LmZpbGVTeXN0ZW0uY29ubmVjdGlvbnMuYWxsb3dGcm9tKHRoaXMuc2VydmljZS5zZXJ2aWNlLCBlYzIuUG9ydC50Y3AoMjA0OSkpO1xuICB9XG59XG4iXX0=